1.在写简单的led代码中:
C中定义操作寄存器地址:
*( (volatile unsigned int *) ADDR )
错误写法:
1).忘记加上*
2).写成 *( volatile (unsigned int * ADDR) ),会报错error: expected ')' before numeric constant。
2.在链接脚本中的两个错误:
1).表示当前地址的.和=之间有空格;
2).在“ 段:{ ” 之间都有空格 如:.text : {
3).在表示地址的语句后有分号;如:bss_start= .;
3.在表示立即数时:
1).ldr后用 =立即数;
2).adr r1, _start时,在_start前用=,#都报错。。。。我就没加了
3).注意移位得到的立即数也要相应标识。
4).注意CMP是比较两个寄存器之间的东西,不能寄存器和立即数比。
关于ldr和adr的区别参考:http://www.360doc.com/content/15/1214/15/20095111_520348069.shtml