基于ARM的嵌入式软件开发
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++
C or C++ 32-bit ARM code
C++
C or C++ 16-bit Thumb code
1). 编译C文件 main.c :
armcc -g -O1 -c main.c (for ARM)
tcc -g -O1 -c main.c
(for Thumb)
其中:
-g compiler添加debug tables. -O1 compiler 在维护足够的调试信息的同时采用最佳优化算法 -c compiler 只进行编译
基于ARM的 嵌入式软件开发
1. 基于ARM的嵌入式系统软件开发流程 2. ADS1.2开发工具介绍 3. ARM系统编程库
2.1 基于ARM的嵌入式系统 软件开发流程
嵌入式软件开发流程
工程建立 源文件 编译 调试
固化
汇编代码 *.s C程序 *.c
链接脚本文件 *.ld 存储映像文件 *.map 命令脚本文件 *.cs
1. 创建一个可执行的映像文件 2. 运行 AXD, 选择File→ Load Image 3. 选择 Execute → Go (或者按 F5),相关文件的处
理器视图被打开,并在缺省断点处停止
4. 若要重复执行程序,选择File → Reload Current Image ,然后重复执行 then repeat Steps 2,3步骤
软件开发的主要流程
操作的两个环节:
编辑与编译链接代码排错环节 软件代码Debug和固化环节 ADS CodeWarrior IDE环境下进行编辑、编译与排错; 在AXD环境下进行代码的固化与Debug。
2.2 ADS 1.2 开发工具介绍
CodeWarrior IDE AXD Debuger
1.选择File → Reload Current Image
2.选择 Execute → Go (或者按 F5),允许到缺省断点Main
3. 按F5 执行到断点 4. Processor Views → Variables 打开变量窗口。窗口中
可以察看Local和Global等变量。 5.右击窗口,选Properties… →Dec,显示变量十进制。 6.按F10,相当于选择Execute → Step单步执行,这时
编译新添加或修改过和touch过的源文件,产生 ELF对象文件;
连接对象文件和库,产生一个ELF image文件; 执行postlink操作,如将ELF 映像文件用fromELF
工具转换成另外一种格式;
5 Debug编译链接通过的项目
缺省情况下,IDE会调用AXD调试器对Make通 过的ELF image文件进行debug。选择Project >Debug
2). 链接映像文件
armlink main.o -o embed.axf
其中: -o 指定链接输出文件名 embed.axf.
3). 用 armsd or AXD 载入映像进行调试运行
6 从命令行Building项目
2. 在命令行使用汇编器
armasm -list addreg.lst addreg.s armlink addreg.o -o addreg 在Debugger中运行程序:
2 添加断点
1. 选择File → Reload Current Image ,
2.选择 Execute → Go (或者按 F5), 3.添加断点的三种方法:
右键点击行,从弹出Menu中选 Toggle Breakpoint 左键点击行,按F9, 双击行的Margin部分
4.选择 System Views →Breakpoints 编辑断点 5. 按F5 恢复执行加断点后的程序
6 从命令行Building项目
1. 从命令行来使用编译器
Compiler name armcc tcc armcpp tcpp
Compiler Source Compiler output variant language
C
C
32-bit ARM code
C
C
16-bit Thumb code
CodeWarrior IDE 使用
1 建立新项目(Project) 2 添加源文件到项目中 3 设置项目的编译目标 4 编译该项目 5 Debug编译连接通过的项目
1. 建立新项目(Project)
1.2 添加源文件到项目中
3 设置项目的编译目标
4 编译该项目
选择 Project ->Make菜单选项,完成下述功 能:
armsd addreg step
2. AXD Debuger的使用
运行程序 添加断点 添加观察点 测试变量内容 测试寄存器 测试内存内容
DEMO 程序功能介绍
是一个Benchmark 程序, MIPS△:
用来测试系统的整形运 算处理性能的高低。
业界用来衡量计算机系统 性能的相对比较量。将
2 添加断点
4.选择 System Views →Breakpoints 编辑断点
设置循环运行断点750次后触发断点,程序停止。 Processor Views → Variables ,检查run_Index值。
5. 按F5 恢复执行加断点后的程序
3. 添加观察点
1.选择File → Reload Current Image
2.选择 Execute → Go (或者按 F5)到main()
3. 按F5 执行到添加的断点 4. System Views →Watchpoints,在 Watchpoints
system View中点右键,选Add,对Watchpoints 属性进行编辑。
4. 测试变量内容
1. 使用Variables processor view察看变量信息
用Dhrystone性能进行描
VAXBaidu Nhomakorabea11/780 作为一个参考
述,计算方法如下:
机,其性能为1 MIP.
Dhrystones/秒=处理器时 钟 * 执行次数)/运行时间
在Demo中,最小运行
VAX 11/780 每秒钟能够完 成1757 Dhrystones .
时间不能小于2秒钟。
1 运行程序步骤