OK6410:启动代码

关于裸板程序的编写
Windows下的工具有ADS、IAR、KEIL
Linux用gcc,工具链


因为没有操作系统引导启动程序,裸板程序要写裸板程序启动代码 .globl _start _start: /* 硬件相关的设置 */ /*0x70000000开头是外设地址开头,以后使用7开头的地址就可以用外设地址访问方式*/ ldr r0, =0x70000000 /*查阅手册可知,p15协处理器可以设置硬件,0x13指的是256M的内存*/ orr r0, r0, #0x13 mcr p15,0,r0,c15,c2,4 @ 256M(0x70000000-0x7fffffff) /* 关看门狗 */ /* 往看门狗配置寄存器WTCON(0x7E004000)写0 */ ldr r0, =0x7E004000 mov r1, #0 str r1, [r0] /* 设置栈 */ ldr sp, =8*1024 /*跳转到C语言的main函数*/ bl main halt: b halt

启动代码有两部分
  1.硬件设置
    设置CPU、硬件相关的设置,把外设的基地址告诉CPU
    CPU访问的地址可能是内存和外设,而两种访问的方式不一样,所以一定设置外设基地址
    对于S3C6410
    内存地址(0x0000_0000~0x6fff_ffff)
    外设地址(0x7000_0000~0x7fff_ffff)  
  
  2.设置栈
    给函数的局部变量设置栈。程序烧写到Nand flash中,开发板上电后,硬件会自动将Nand flash复制到6410中的片内内存里面,然后从0地    址开始执行
   
  3.关看门狗
      防止重启,配置看门狗寄存器

  2.调用C函数
      跳转到自己写的C代码的函数去

  以上对硬件操作,要结合S3C6410的芯片手册来看,通过查阅手册找到相关寄存器的地址

 

 

你可能感兴趣的:(嵌入式,ARM11)