1:看原理图也就是pDF电路,
2:如何让GPF4变成输出I/O:a配置功能;设置输入/输出/其他b:设置及输出高低电平。 HOW 操作寄存器: how to how 看芯片手册。
3:软件初始化:0设置堆栈1设置返回地址2调用main3清理工作 硬件初始化:0关看门狗1初始化时钟2初始化sdram,
4,裸板程序不比其他啊,因为要初始化硬件,用汇编,我就把常用的那几条会变指令说说,LDR http://yxmyifeng.blog.163.com/blog/static/12978978220100194272529/ MOV http://hi.baidu.com/linuxcfan/item/faa40d33c08474179dc65edf 什么STR bl都在这了:http://blog.chinaunix.net/uid-26945045-id-3198278.html。IMPORT ;http://blog.csdn.net/hugh512/article/details/5880815
5在普及个知识就是函数调用和堆栈的关系,难免要用到。http://blog.sina.com.cn/s/blog_63f322690100i1nc.html
6 我附上2段用汇编的初始化代码:fy2440的,只有软件初始化,但是也能运行。
AREA |DATA|,CODE,READONLY
ENTRY
ldr r13, =0x1000
IMPORT ledMain
b ledMain
END
韦东山的用汇编初始化,硬件和软件初始化,就是多了个看门狗但是到我的板子用不成。。
@****************************************************************************** @ File:crt0.S @ 功能:通过它转入C程序 @****************************************************************************** .text .global _start _start: ldr r0, =0x53000000 @ WATCHDOG寄存器地址 mov r1, #0x0 str r1, [r0] @ 写入0,禁止WATCHDOG,否则CPU会不断重启 ldr sp, =1024*4 @ 设置堆栈,注意:不能大于4k, 因为现在可用的内存只有4K @ nand flash中的代码在复位后会移到内部ram中,此ram只有4K bl main @ 调用C程序中的main函数 halt_loop: b halt_loop