ARM学习笔记一

ARM学习笔记一
 
1 熟悉ADS编译器和编辑环境CodeWarrior
2 熟悉在AXD中使用ARMulate仿真
3 熟悉AXD如何调试汇编代码
4 熟悉ARM汇编指令
     LDR   STMFD    B
4 熟悉ARM汇编程序结构:
     1)AREA部分
     2)ENTRY部分
     3)BODY部分
     4)END结束
 


碰到并解决如下问题:


Q:
程序编译时出现如下错误:
Error   : A1163E: Unknown opcode
....line 1....    

Error   : (Fatal) A1355U: A Label was found which was in no AREA
....line 2....
A:
ARM汇编指令不能在第一列,按一个TAB或者空格,便OK了;但是标号(label,symbol)必须从第一列开始。
    

Q:
ARM的堆栈怎么设置?
A:
这个和开发工具有关,如果用的是ARM公司的ADS开发系统,为了遵从ATPCS规范,则必须用满递减方式。
   
Q:
Load Image以后出现:
00000000 [0xe7ff0010]   dci      0xe7ff0010 ; ? undefined
00000004 [0xe800e800]   stmda    r0,{r11,r13-pc}
00000008 [0xe7ff0010]   dci      0xe7ff0010 ; ? undefined
0000000c [0xe800e800]   stmda    r0,{r11,r13-pc}
......
A:
上述代码表示程序跑飞;原因是程序没有entry point,加载后直接跑飞;其实Make的时候已经有一个Warning:
Warning : L6305W: Image does not have an entry point. (Not specified or not set due to multiple choices.)
 
 
PS:
同事推荐的Mini2440配套学习书籍
《嵌入式Linux应用开发完全手册》

你可能感兴趣的:(linux,image,汇编,嵌入式,开发工具,编译器)