认识ARM系列器件
ARM7 9 ARM Cortex
开发环境/软件
Keil IAR ads
IAR
ARM还有一个simulator可供仿真调试使用,其他的需要连接实际硬件调试 全速运行;添加断点 F9;进入 step into;跳出 step out跳出循环 Forced Interrupt-trigger触发中断 .s文件 startup文件
ARM指令集
ARM 32 thumb 16位
Ads中生成烧录文件
生成烧录文件bin等,targetsetting中选择 Target Settings中将Post- linker设置为 ARM fromELF。然后,设置 ARM fromELF,在Output Format中选择需要的格式。
ads中.a文件
a文件是封装的lib库文件,封装成a文件,然后给人用,要告诉人接口 如何生成?新建Lib工程 File-New-ARM Object Library,然后建立c文件,输入函数int test(void),然后编译,就生成了.a文件 如何调用?在arm可执行文件中调用,File-New-ARM Executable Image,然后c文件中中声明extern int test(void);,然后就可调用.a中的函数了,要将.c文件和.a文件都加入工程中
.s文件
startup文件
__main函数
__main()是编译系统提供的一个函数,负责完成库函数的初始化和初始化应用程序执行环境,最后自动跳转到main()。所以说,前者是库函数,后者就是我们自己编写的main()主函数;
__main()为编译系统提供的一个库函数,使用__main标号引导系统时必须将应用程序的入口数定义为main();
__main函数是C/C++运行时库的一个函数,嵌入式系统在进入应用主程序之前必须有一个初始化的过程,使用__main标号引导系统时必须将应用程序的入口定义为main()。 在初始化的过程中,__main函数的作用主要有两点: (1) 完成对映像文件的初始化操作 在介绍映像文件的初始化操作之前,先介绍以下几个概念: 1. 映像文件 链接器把多个目标文件链接成一个映像文件。 2. 加载地址和执行地址 映像文件可以有两种地址:加载地址和执行地址。加载地址是映像文件在存储器中的存储地址;执行地址就是映像文件运行时的地址。 3. 加载域和执行域 文件加载的存储区叫加载域,文件运行的存储区叫执行域。 4. 从加载地址到执行地址 在结构比较简单的系统中,加载地址就是执行地址;而在复杂系统中,程序运行前,常常会把映像文件的一部分或全部从存储区域移出去,此时执行地址就不再是加载地址。 知道以上几个概念,__main函数对映像文件的初始操作就不难理解了。对于加载地址和执行地址不同的映像文件,__main函数会把加载地址的代码和数据复制到执行地址中,并且对被链接器指定为需要初始化为0的段,进行清零操作
__main和main
ADS中规定的C语言入口,ADS中从初始化汇编代码跳到main函数有两种方式,main和__main: 1,在__main入口的模式下,汇编代码的指令为 b __main, 编译器在跳转到main之前还要作一系列的工作,这其中就包括对运行环境的初始化,在
.scf文件
ads ARM linker simple scattered Simple方式是默认的链接方式,也是最为频繁使用的链接方式,它链接生成简单的ELF格式的目标文件,使用的是链接器选项中指定的地址映射方式。Scattered方式使得链接器要根据scatter格式文件中指定的地址映射,生成复杂的ELF格式的映像文件。 -– 开发过程:建立项目—>源文件—>编译—->调试—–>固化 交叉编译: -------三类: 驱动工程师: 主做底层驱动,为上层提供接口,不断新增硬件,还是比较忙的 系统工程师:修剪、移植系统,配置系统,跑起来 各种对象和事件的处理 应用工程师: 界面的设计, 网络(常常用到网络) 数据库等 --------------Linux ARM Linux有MMU的 UCLinux无MMU -----交叉编译 交叉编译,简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓 平台,实际上包含两个概念:体系结构(Architecture)、操作系统(Operating System)。同一个体系结 构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。
参考资料
ADS120_DEBUG_Hardware.exe ARM Linux在SkyEye上的移植-电子开发网.mht arm-CH8.ppt ARM体系结构与编程.pdf ARM嵌入式入门级教程.pdf ARM嵌入式应用开发技术白金手册.pdf ARM应用系统开发详解全集.pdf ARM开发详解.pdf ARM接口设计技术.ppt skyeye122Rel·tar.bz2