mdk/iar汇编区别

在代码移植中,经常遇到iar的代码转换问题,在此不间断记录一些,个人感觉还是IAR的更接近C一些,备查:

1. #ifdef的使用

1 // IAR
2 #ifdef MACRO_XX
3 #endif
4 
5 // MDK(行首有空格)
6     IF :DEF:MACRO_XX
7     ENDIF

2. 声明全局变量/函数

1 // IAR
2 PUBLIC
3 
4 // MDK
5 EXPORT

3. 引用外部变量/函数

1 // IAR
2 EXTERN
3 
4 // MDK
5 IMPORT

4. 函数的实现

  MDK不允许加":",IAR均可

5. 数据段(FREE_MEM)的定义

 1 // IAR:
 2         RSEG    FREE_MEM:DATA
 3         PUBLIC  __tx_free_memory_start
 4 __tx_free_memory_start
 5         DS32    4
 6 
 7 // MDK
 8     AREA    FREE_MEM, DATA, READWRITE
 9     EXPORT    __tx_free_memory_start
10 __tx_free_memory_start
11     SPACE    4

6. 代码段的定义

1 // IAR
2         SECTION `.text`:CODE:NOROOT(2)
3 
4 // MDK
5     AREA    |.text|, CODE, READONLY

7. 待续...

博客园:http://www.cnblogs.com/linux-farmer/
原文地址:https://www.cnblogs.com/linux-farmer/p/13336646.html