ARM开发调试教程.
嵌入式系统8ARM程序的调试分析解析

I 指令集模拟器的调试方法
利用主机(一般是PC)的资源构建一个虚拟的目标机系统,该系统通过解释执行目标处理器的二进制代码来仿真运行目标程序VM为指令集综合模拟器ARM Armulator-模拟运行ARM指令系统Palm OS 的模拟器-模拟运行68K指令系统
6
II 操作系统模拟器的调试方法
西安电子科技大学计算机学院
32
断点的类型
硬件断点在ARM中直接设定watchpoint中的地址,当ARM运行到指定的地址时,就进入Debug状态数目受EmbeddedICE中的Watchpoint数目(2个)的限制;但是,可以在任何地方设置断点软件断点改变存储器中的ARM指令为一个特殊的数据X(ARM的未定义指令),同时,设置watchpoint中的断点数据也为X,当ARM把X数据作为指令读入的时候,ARM就进入Debug状态数目不受限制,但是,软件断点是通过替换系统的断点地址的指令实现的,所以,软件断点只能在可写的存储器的地址中设置(比如:RAM),而不能在ROM(比如:Flash)中设置
10
2.3 在目标机上驻留监控软件
1、原理(大使兼间谍)被调试的应用程序放在RAM中;监控程序(Monitor)放在ROM(flash)中;监控程序负责按主机的要求控制应用程序的执行节奏;并随时将目标机上的各种状态报告给主机。需要时可将控制权全部交给应用程序。
11
Q:单步调试怎么实现?
2、基于调试代理(Angel)的调试方法
驻留Angel是一段驻留在开发板ROM中的一段程序,系统Boot后,Angle接管整个系统并初始化系统和通信接口。通信Angel通过一定的通信协议与主机的Debugger通信。下载和移交Debugger通过特定的命令通知Angel将用户调试的程序下载到目标板的SDRAM中的特定地址,并可以按照Debugger的要求将控制权交给相应的代码地址。断点和数据上传的实现对于用户设置的断点,Angel会在断点的位置插入一条软陷指令,当用户的程序执行到断点时,系统会产生一个软陷异常。中断后可以由Angel接管系统,并将系统当前的寄存器和某些内存值传给主机Debugger。
ARM开发软件使用教程

ARM开发软件使用教程
二、工程创建
安装完成后,打开ARM开发软件,点击“新建工程”按钮。
在弹出的
对话框中,选择工程类型和工程名称,并选择工程保存的目录。
点击“确定”按钮完成工程创建。
三、代码编写
四、编译调试
五、调试工具
ARM开发软件提供了强大的调试工具,包括调试器、仿真器等。
通过
调试工具可以实时监测程序的运行状态、寄存器的值、内存的使用情况等。
在调试过程中,可以使用调试工具进行断点设置、变量监视等操作,以辅
助调试工作。
六、调试技巧
ARM开发软件的调试过程中,可以使用一些技巧提高调试效率。
比如,使用断点进行程序的停留,通过查看寄存器的变化情况来分析程序的运行
状态。
还可以使用观察窗口实时监测变量的值,通过调试输出窗口打印调
试信息等。
七、其他功能
除了上述基本功能外,ARM开发软件还提供了其他一些功能,如性能
分析、代码优化等。
性能分析功能可以帮助开发者找出程序的性能瓶颈,
对代码进行优化改进。
代码优化功能可以将代码进行优化,提高程序的执
行效率。
总结:。
ARM开发调试教程

ARM开发调试教程作者:李希岗创建日期:2003年5月20日修改日期:2003年5月20日版本:说明:本文是我学习ARM开发以来的一些经验总结,以自己设计的S3C44B0X板为例,给出我调试开发ARM开发板的一些最基础知识。
我只是在自己的开发板调试过并且经验有限,有些知识只能做为参考,不一定准确,就算给大家一个“例程”吧,如果大家有不同意见,希望多多指正!硬件篇(一)开发板的整体架构我设计的开发板是在三星44B0 demo板的基础上,参考网络上相关的资料,加入我的思想开发的。
以下是该开发板的整体架构:(二)开发板的焊接贴片式元器件的拆卸、焊接宜选用200~280℃调温式尖头烙铁。
贴片式电阻器、电容器的基片大多采用陶瓷材料制作,这种材料受碰撞易破裂,因此在拆卸、焊接时应掌握控温、预热、轻触等技巧。
控温是指焊接温度应控制在200~250℃左右。
预热指将待焊接的元件先放在100℃左右的环境里预热1~2分钟,防止元件突然受热膨胀损坏。
轻触是指操作时烙铁头应先对印制板的焊点或导带加热,尽量不要碰到元件。
另外还要控制每次焊接时间在3秒钟左右,焊接完毕后让电路板在常温下自然冷却。
以上方法和技巧同样适用于贴片式晶体二、三极管的焊接。
贴片式集成电路的引脚数量多、间距窄、硬度小,如果焊接温度不当,极易造成引脚焊锡短路、虚焊或印制线路铜箔脱离印制板等故障。
拆卸贴片式集成电路时,可将调温烙铁温度调至260℃左右,用烙铁头配合吸锡器将集成电路引脚焊锡全部吸除后,用尖嘴镊子轻轻插入集成电路底部,一边用烙铁加热,一边用镊子逐个轻轻提起集成电路引脚,使集成电路引脚逐渐与印制板脱离。
用镊子提起集成电路时一定要随烙铁加热的部位同步进行,防止操之过急将线路板损坏。
换入新集成电路前要将原集成电路留下的焊锡全部清除,保证焊盘的平整清洁。
然后将待焊集成电路引脚用细砂纸打磨清洁,均匀搪锡,再将待焊集成电路脚位对准印制板相应焊点,焊接时用手轻压在集成电路表面,防止集成电路移动,另一只手操作电烙铁蘸适量焊锡将集成电路四角的引脚与线路板焊接固定后,再次检查确认集成电路型号与方向,正确后正式焊接,将烙铁温度调节在250℃左右,一只手持烙铁给集成电路引脚加热,另一只手将焊锡丝送往加热引脚焊接,直至全部引脚加热焊接完毕,最后仔细检查和排除引脚短路和虚焊,待焊点自然冷却后,用毛刷蘸无水酒精再次清洁线路板和焊点,防止遗留焊渣。
第五讲 基于ARM处理器开发过程和调试原理

第五讲嵌入式系统开发和调试原理Sep 2007数据处理指令-第二个操作数Sep 2007跳转的实现Sep 2007前变址和后变址寻址Sep 2007堆栈操作¾ARM的堆栈操作由块传送指令来实现Sep 2007Software Interruptspart and optional C partSep 2007ATPCS介绍-寄存器的使用规则Sep 2007第五讲嵌入式系统开发和调试原理Sep 2007嵌入式系统调试的需求Sep 2007PC 上的调试Sep 2007嵌入式系统的开发过程Sep 2007交叉编译环境Sep 2007嵌入式系统调试的一般方法Sep 2007交叉编译环境的内容Sep 2007第五讲嵌入式系统开发和调试原理Sep 20071. ADS开发环境Sep 20071. ADS开发环境Sep 20071. ADS开发环境Sep 2007程序举例Sep 2007第五讲嵌入式系统开发和调试原理Sep 2007调试工具和方法分类嵌入式系统的调试工具基于主机的调试 指令集模拟器 OS模拟器 GUI模拟器(应用程序开发) 基于硬件的调试工具和方法。
在线仿真器:使用硬件仿真芯片和仿真内存,连接困难,价格昂贵。
如常见的51仿真器(替代处理器) Rom 仿真器 :替代目标系统的ROM存储器,价格低廉的调试手段, 功能比较简单 驻留监控软件(Resident Monitors): BDM仿真技术:摩托罗拉公司处理器芯片采用的一种方式, POWERPC等。
片内内置调试电路和微码程序,通过串口调试 JTAG仿真技术:目前主流。
通过JTAG芯片测试接口和内部片上调试 逻辑通信,实现调试Sep 2007No. 21指令集模拟器利用在宿主机(一般是PC) 的资源构建一个虚拟的目标 机系统,该系统通过解释执 行目标处理器的二进制代码 来仿真运行目标程序 ARM Armulator-模拟 运行ARM指令系统App1 App1App2 App2….App n App n目标机的RTOS 目标机的RTOS 虚拟机构建的环境:寄存器,存储器等等 VM(虚拟机) VM(虚拟机) PC OS (MS Windows) PC OS (MS Windows) PC PCSep 2007No. 22ARMULATOR 软件仿真器ARMulator(ARM仿真器):是一个指令级的仿真程序, 运行在主机上没有硬件的情况下,调试应用程序 ARMulator可以报告各指令执行时的机器周期,所以也可以用来进行应用 程序的性能分析。
ARM开发板使用手册

ARM开发板使用手册PHILIP LPC2132ARM7TDMI第一章介绍LPC2132开发板是专门为arm 初学者开发的实验板,用户可以做基础的arm实验,也可以做基于ucos-ii的操作系统实验。
本系统的实验源代码全部开放,用户可以在此基础上开发产品,减少重复劳动。
由于LPC2132体积很小,并且功能强大,因此特别适合需要复杂智能控制的场合,其运行速度高于早期的80486计算机,而体积只有指甲大。
我们已经将LPC2132产品成功应用在干扰比较强的工业场合,经过6个月的运行,各项指标符合要求。
因此我们特别推荐这一款开发板作为ARM初学者入门。
由于此款开发板体积很小,非常适合直接应用在工业以及民用智能控制器的场合。
LPC2132 CPU介绍LPC2131/2132/2138 是基于一个支持实时仿真和跟踪的16/32 位ARM7TDMI-STM CPU,并带有32kB、64kB 和512kB 嵌入的高速Flash 存储器。
128 位宽度的存储器接口和独特的加速结构使32 位代码能够在最大时钟速率下运行。
对代码规模有严格控制的应用可使用16 位Thumb 模式将代码规模降低超过30%,而性能的损失却很小。
较小的封装和很低的功耗使LPC2131/2132/2138 特别适用于访问控制和POS 机等小型应用中;由于内置了宽范围的串行通信接口和8/16/32kB 的片内SRAM,它们也非常适合于通信网关、协议转换器、软件modem、语音识别、低端成像,为这些应用提供大规模的缓冲区和强大的处理功能。
多个32 位定时器、1个或2 个10 位8 路的ADC、10 位DAC、PWM 通道、47 个GPIO 以及多达9 个边沿或电平触发的外部中断使它们特别适用于工业控制应用以及医疗系统。
主要特性●●16/32 位ARM7TDMI-S 核,超小LQFP64 封装。
●●8/16/32kB 的片内静态RAM 和32/64/512kB 的片内Flash 程序存储器。
ARM7调试文档

吾人制作
试验一 LED 跑马灯试验 先将工程目录拷贝到本地硬盘,去掉所有文件的只读属性。将 JTAG 板子跳线接到 Wiggler 接 口(我们出厂默认已经接到这个位置了),连接板子和电脑并口;点击 ARM7.exe 运行调试代 理软件(这个软件在整个调试的过程中都要打开的),JTAG 链接正常后应该显示如下画面。
#define LEDTEST_DELAY 500000 我们可以方便的控制闪烁频率。
吾人制作
Image 文件。选择 led.axf 文件,程序被调入到 AXD 调试环境当中,如下图:
程序指针执行第一条语句,在 AXD 环境中调试程序和大多数的调试环境一样,我们可以设 置断点,单步执行,查看变量的值等等。
本试验程序的效果是 LED1、LED2、LED3 轮流闪烁,我们可以通过修改延时的参数来控制 闪烁的频率。打开 main.c 文件修改下来宏
这样设置好后,我们相当于设置了程序的代码段起始地址,程序入口地址以及哪个目标文件中 的哪个段放再代码段的起始的地方,如下图,起始地址是 0x0c008000,代码段起始地址
吾人制作
0x0c008000,将 vector.o 目标文件的 SelfBoot 段放在代码段的起始地方。
我们可以打开 vector.s 文件看到如下这一段代码,其中就有名为 SelfBoot 的代码段。
吾人制作
在使用光盘中的试验例子之前我们需要做一下的准备工作 1、 安装 ADS1.2 2、 安装调试代理 3、 将程序从光盘拷到硬盘中,并去掉所有文件的只读属性 一、安装 ADS1.2
将安装包解压后,双击 setup.exe 开始安装,在拷贝文件结束后将出现 ARM License Wizard 界面,如下图,在这里需要安装 license 文件。
JTAG(ARM)调试方法

ARM JTAG 调试原理OPEN-JTAG开发小组 1 前言这篇文章主要介绍ARM JTAG调试的基本原理。
基本的内容包括了TAP (TEST ACCESS PORT) 和BOUNDARY-SCAN ARCHITECTURE的介绍,在此基础上,结合ARM7TDMI详细介绍了的JTAG调试原理。
这篇文章主要是总结了前段时间的一些心得体会,希望对想了解ARM JTAG调试的网友们有所帮助。
我个人对ARM JTAG的理解还不是很透彻,在文章中,难免会有偏失和不准确的地方,希望精通JTAG调试原理的大侠们不要拍砖,有什么问题提出来,我一定尽力纠正。
同时也欢迎对ARM JTAG调试感兴趣的朋友们一起交流学习。
2 IEEE Standard 1149.1 - Test Access Port and Boundary-Scan Architecture既然是介绍JTAG调试,还是让我们从IEEE的JTAG调试标准开始吧。
JTAG是JOINT TEST ACTION GROUP的简称。
IEEE 1149.1标准就是由JTAG这个组织最初提出的,最终由IEEE批准并且标准化的。
所以,这个IEEE 1149.1这个标准一般也俗称JTAG调试标准。
接下来的这一部分,主要简单的介绍了TAP (TEST ACCESS PORT) 和BOUNDARY-SCAN ARCHITECTURE的基本构架。
虽然不是很全面,但对了解JTAG的基本原理来说,应该是差不离了。
如果希望更全面深入的了解JTAG的工作原理,可以参考IEEE 1149.1标准。
2-1 边界扫描在JTAG调试当中,边界扫描(Boundary-Scan)是一个很重要的概念。
边界扫描技术的基本思想是在靠近芯片的输入输出管脚上增加一个移位寄存器单元。
因为这些移位寄存器单元都分布在芯片的边界上(周围),所以被称为边界扫描寄存器(Boundary-Scan Register Cell)。
ARM调试方案

11
读系统状态 (在停止模式 在停止模式) 在停止模式
从地址0x8000 向后读 10 个字
ARMxD ARMxD
1
FDE
Databus
2
registers
System speed
Databus
TDI TCK
MCLK
ARMxD
MOV r0, #0x8000 LDMIA r0!, {r1-r10} - system speed STMIA r0, {r1-r10} - debug speed
目标板
主机 - 在AXD 和 Multi-ICE之间的控制器 AXD Multi-ICE 实时监控协议
非常简单的协议 快速 – 没有出错检查 允许后台命令
实际目标板
小的调试监控程序 (<2k 代码字节) 集成在目标里. 以目标代码和原代码的形式提供
122v01 ARM Debug Solutions
r1 Write Register
1 0
Scan chain 2 Scan chain 2
Control Register
r3
W R
Read Register
; 拷贝 DCC 控制寄存器到 r2
MRC p14,0,r2,c0,c0,0 ;检查DCC 控制寄存器的位0 TST r2,#0x1
; 如果位0设置,拷贝数据从DCC 写寄存器 到r3
BREAKPT
EmbeddedICE Logic-RT
TAP
ARM 被调试的系统可以是最终的系统! 也可以用第三方的协议转换工具:
/DevSupp/ICE_Analyz/ 122v01 ARM Debug Solutions
TM
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ARM开发调试教程作者:李希岗创建日期:2003年5月20日修改日期:2003年5月20日版本:1.0说明:本文是我学习ARM开发以来的一些经验总结,以自己设计的S3C44B0X板为例,给出我调试开发ARM开发板的一些最基础知识。
我只是在自己的开发板调试过并且经验有限,有些知识只能做为参考,不一定准确,就算给大家一个“例程”吧,如果大家有不同意见,希望多多指正!硬件篇(一)开发板的整体架构我设计的开发板是在三星44B0 demo板的基础上,参考网络上相关的资料,加入我的思想开发的。
以下是该开发板的整体架构:(二)开发板的焊接贴片式元器件的拆卸、焊接宜选用200~280℃调温式尖头烙铁。
贴片式电阻器、电容器的基片大多采用陶瓷材料制作,这种材料受碰撞易破裂,因此在拆卸、焊接时应掌握控温、预热、轻触等技巧。
控温是指焊接温度应控制在200~250℃左右。
预热指将待焊接的元件先放在100℃左右的环境里预热1~2分钟,防止元件突然受热膨胀损坏。
轻触是指操作时烙铁头应先对印制板的焊点或导带加热,尽量不要碰到元件。
另外还要控制每次焊接时间在3秒钟左右,焊接完毕后让电路板在常温下自然冷却。
以上方法和技巧同样适用于贴片式晶体二、三极管的焊接。
贴片式集成电路的引脚数量多、间距窄、硬度小,如果焊接温度不当,极易造成引脚焊锡短路、虚焊或印制线路铜箔脱离印制板等故障。
拆卸贴片式集成电路时,可将调温烙铁温度调至260℃左右,用烙铁头配合吸锡器将集成电路引脚焊锡全部吸除后,用尖嘴镊子轻轻插入集成电路底部,一边用烙铁加热,一边用镊子逐个轻轻提起集成电路引脚,使集成电路引脚逐渐与印制板脱离。
用镊子提起集成电路时一定要随烙铁加热的部位同步进行,防止操之过急将线路板损坏。
换入新集成电路前要将原集成电路留下的焊锡全部清除,保证焊盘的平整清洁。
然后将待焊集成电路引脚用细砂纸打磨清洁,均匀搪锡,再将待焊集成电路脚位对准印制板相应焊点,焊接时用手轻压在集成电路表面,防止集成电路移动,另一只手操作电烙铁蘸适量焊锡将集成电路四角的引脚与线路板焊接固定后,再次检查确认集成电路型号与方向,正确后正式焊接,将烙铁温度调节在250℃左右,一只手持烙铁给集成电路引脚加热,另一只手将焊锡丝送往加热引脚焊接,直至全部引脚加热焊接完毕,最后仔细检查和排除引脚短路和虚焊,待焊点自然冷却后,用毛刷蘸无水酒精再次清洁线路板和焊点,防止遗留焊渣。
检修模块电路板故障前,宜先用毛刷蘸无水酒精清理印制板,清除板上灰尘、焊渣等杂物,并观察原电路板是否存在虚焊或焊渣短路等现象,以及早发现故障点,节省检修时间。
一点点建议:建议您先焊接一些主要的器件,比如说S3C44B0﹑SST39VF160﹑HY57V641620﹑JTAG ﹑复位电路﹑电源部分,这样您焊接好后,就可以进行FLASH的直接烧写,确定FLASH的功能是否正确。
(三)开发板电源调试焊接过后的电路板,很可能存在短路﹑虚焊的情况,如果你此时直接通入电源的话,很可能造成主芯片的发热和烧毁,我已经出现这样的情况了,焊接好电路后,直接通入电源,FLASH就开始发热,直到烫手…此时一定不要轻举妄动,都花一点时间测试电源部分的正确。
比如测试S3C44B0的电源是否正确,包括+3.3V和+2.5V,如果不正确,立刻进行检测,看是否有错误的情况。
应该接电源的脚分别如下:接+3.3V的引脚:9脚﹑47脚﹑125脚接+2.5V的引脚:138脚﹑109脚﹑62脚﹑34脚﹑21脚如果测试完全正常,那么就要开始检测s3c44B0的电源地是否正确,正常情况下有如下引脚应该接地,如果没有接地的话,可以判断已经断路。
应该接地的引脚如下:应该接地的引脚:10脚﹑22脚﹑35脚﹑48脚﹑63脚﹑73脚﹑74脚﹑90脚﹑110脚﹑126脚﹑139脚﹑152脚上述引脚有的并非地线,电路只有将该脚接地才可以工作。
(四)开发板调试的第一步呵呵,如果您的焊接方法没有问题,电源完全是好的,那么你就已经成功一半了。
试通电一次,看电源指示灯是否亮了,电源只是灯亮度正常,那么你就已经成功了。
如果你在调试过程中,发现电源指示灯很暗的话,估计是某些电路是短路了,赶快拔掉电源,看一下是否某些芯片发热或者已经冒烟了…记住:有几个跳线一定要跳的,就是JP5﹑JP6﹑JP7一定要短路,如果不短路的话,你的所有电源都没有。
JP1不短路﹑JP2短路﹑JP3短路,他们分别对应OM0﹑OM1﹑OM1JP8短接2—3。
确定是S3C44B0工作方式big mode 和little mode。
好了,如果全部正常的话,直接用JTAG调试板,连接好JTAG部分,启动WIN98,进入我给你的光盘,找到简单应用程序的目录。
里面有一个程序,是直接烧写S3C44B0的FLASH的。
在您烧写之前,查看JTAG连接是否正常,JTAG上的短路线是否已经短路,如果全部正常的话,直接进入烧写了。
在烧写之前有几个地方需要注意:并口延长线分别连接PC机并行口和JTAG下载板,JTAG下载板通过扁平排线连接ARM板。
S3C44B0X有两个复位引脚,其中nRESET是CPU复位引脚,nTRST是JTAG单元复位引脚,一般的S3C44B0X系统都有一个跳线,用短路块将两个复位端连在一起,这样一按复位按键,两个复位引脚都复位了。
而JTAG下载板上面也有一个跳线,这个跳线是JTAG单元复位引脚。
在烧写Flash的时候,PC机会通过JTAG下载板上的那个跳线来复位ARM板的JTAG单元,所以应该用短路块将JTAG下载板上的跳线短路,而ARM板上的跳线(连接nRESET和nTRST)的则不应该短路;全部准备好了,现在可以烧写代码了!网上有一个叫Fluted.exe的程序,使用它就可以完成Flash烧写。
这里面针对不同的CPU还需要不同的Bsd文件,不同的Flash芯片需要对Fcd文件进行相应的修改。
S3C44B0X的BSD文件S3C44B0X.bsd可以在三星公司网站找到,适用于SST39VF160的fcd文件在网上搜索得到。
特别说明:这个烧写Flash的程序只能在Windows98系统下才能运行!不支持Windows2000、WindowsNT和WindowsXP,所有你需要切换到Windows98下面才能进行这项工作!对于我的板子,使用SST39VF160,需要的S3C44B0X.bsd、default.fcd和Fluted.exe,将自己的目标代码model.bin与上面的三个文件放在同一个目录下面,运行Fluted.exe就可以进行Flash烧写了。
由于Fluted.exe要输入相应的配置参数,所以我干脆做了一个批处理文件f.bat:FluteD a -f model.bin -v -s 0这样运行这个批处理文件就可以开始烧写了,烧写界面如下:如果你是自己设计ARM板,第一次烧写Flash,那么你可以检查一下系统:首先看看CPU的各种电压是否正常,可以看看系统时钟输入的波形,32768晶体的一个引脚上应该能看到32768的正弦波。
如果是刚焊新的Flash,那么一般Flash里面数据都是0Xff,用示波器可以看到数据线都是高电平,地址线上面有规则的方波信号。
你一按复位按键,方波立马消失变成低电平。
如果写入成功的话,WRITE &&VIRIFY成功的话,你已经成功了……恭喜你了!!!很可能由于电源高频干扰或者错误接地,或者SST39VF160两个地址线短路出现清除FLASH,能够写入FLASH,可是VERIFY出错的问题,我遇到的就是那个两个地址线短路的情况,结果写入都正确,可是VERIFY时错误了,错误信息如下:verify missed at 0x11111 orianglal :0x20 jtag:0x45如果您在开发自己的开发板的时候也出现类似情况,我这里给你提示了,呵呵成功已经离你不远了……SDT软件篇已经有了自己的平台,那么怎么样知道你的硬件是否真的好了呢?唯一的办法就是用SDT进行调试硬件,我们正式开始我的下一篇—SDT软件篇。
(一) SDT软件的安装点击SDT2.51安装程序中的setup.exe,出现如下安装界面:接着出现如下画面:然后出现拷贝文件过程如下:安装完成时:此处必须重新启动计算机,以使设置生效。
(二)启动SDT2.51安装完毕,点击程序组中的ARM Project Manager启动主程序,界面如下:(三)利用我提供的模板开始自己的项目很多刚刚学习ARM的人往往会遇到这样一个问题:自己写了程序,编译也通过了,结果怎么也生成不了二进制格式的目标代码(*.bin)。
如何生成目标代码需要参考SDT2.51安装文件夹pdf中的userguide.pdf,在它的392页有详细说明,教你怎么Converting ARM linker ELF output to binary ROM formats。
为了给大家带来方便,在我提供的小应程序中,可以将他保存为一个模板,操作如下打开我提供的小应用程序的工程,点击菜单File下的Save As Template:然后在弹出的窗口中随意选择一个目录下,新建一个自己的文件夹,随便取一个Project名称,确认即可在主程序上出现新Project界面。
现在可以在刚才建立的文件夹下面编辑代码,包括汇编代码和C程序代码。
注意汇编代码必不可少,它是用来进行系统初始化和C程序入口的,这些范例代码可以在三星网站去下载。
(四)如何添加自己的源码点击菜单Project下的Add File To Project……,在弹出的窗口中,浏览自己的Project文件夹下面的程序代码,将代码添加到创建的项目。
这时依次点击rom、debug、Sources前面的十字架,就会看到自己刚才添加成功的代码,双击任何一个代码文件就可以打开它进行编辑:说明:SDT2.51好象有一个bug,当你直接双击一个代码文件时,可能会出现非法错误。
我的机器就是这样。
希望各位当编写代码时用uedit,这样比较方便。
(五)生成可以在FLASH中运行的代码编辑代码大家都会了,那么如何将自己写的代码放在FLASH中,并直接运行呢?看过S3C44B0 DATASHEET的人或者知道计算机启动过程的人都会知道,BIOS是一个什么东西,那么对于S3C44B0的启动也无非如此。
你生成的代码必须存放在0x00000000为开始的FLASH中,这样当S3C44B0复位的时候,从这里取指令执行。
那么如何设置呢?如下:点击ENTRY AND BASE,接着会出现如下对话框:(六)生成可在FLASH中运行的目标码现在选择菜单build或者点击快捷图标就可以编译代码,点击Force build之后就生成了二进制目标代码(*.bin),这可以在项目文件夹下面找到。