嵌入式系统7(ARM下的C编程)讲述.ppt

volatile 不是ARM C特有的,只是ARM中比较常用 例如对I/O端口寄存器的操作 volatile unsigned int *port = (unsigned int *)0xC000; *port = value; //写端口 value = *port; //读端口 告诉编译器该变量可能在程序之外修改 编译时不能优化对volatile变量的操作 不能对volatile变量使用缓冲技术 西安电子科技大学计算机学院 * { a = 2; b= a; } 西安电子科技大学计算机学院 * { a = 2; b= 2; } { *port = 0x00; *port = 0x01; *port = 0x00; *port = 0x01; } { *port = 0x01; } 编译器可能的优化 编译器可能的优化 4 ARM连接器 ADS中包含了连接器armlink armlink可将编译得到的ELF格式的目标文件以及相关的C运行时库进行连接,最终生成ELF格式的映象文件。 西安电子科技大学计算机学院 * 目标文件的结构 * CODE DATA .text .data .bss 执行代码 常量 有初值的全局变量或静态变量 无初值的全局变量或静态变量 RO RW ZI 高地址 低地址 Linux ARM CPU 连接器的作用 将多个目标文件或库文件按

文档评论(0)

1亿VIP精品文档

相关文档