好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

嵌入式系统与应用实验指导08.docx

21页
  • 卖家[上传人]:re****.1
  • 文档编号:509615348
  • 上传时间:2022-10-27
  • 文档格式:DOCX
  • 文档大小:594.79KB
  • / 21 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 嵌入式系统原理及应用》实验指导书适用专业: 电气、测控等课程代码: 8413841总学时:48 总学分:3编写单位: 电气信息学院编写^人、: 王平审核人:审批人:批准时间: 年 月 日目录实验一 ADS 1.2 集成开发环境练习 3实验二 汇编调用实验与 Bootloader 下载 11实验三、“C/03II移植实验 14实验四、步进电机控制实验 17实验一 ADS 1.2 集成开发环境练习一、实验目的和任务了解 ADS 1.2 集成开发环境的使用方法 建立一个新的工程;建立一个汇编源文件,并添加到工程中;设置文本编辑 器支持中文 ;设置编译链接控制选项;编译链接工程;调试工程二、实验设备装有 ADS 1.2 集成开发环境的 PC 机三、实验步骤1.ADS 环境练习⑴ 在D:\新建一个目录,目录名为experiment⑵ 启动ADS1.2 IDE集成开发环境,选择【File】>【New„】使用ARM Executable Image工程模板建立一个工程,名称为ADS, 目录为D:\experiment⑶ 选择【File】->【New…】建立一个新的文件TEST1.S,设置直接添加到项目 中。

      输入如程序代码,并保存,此时在工程窗口中可以看到TEST1.S文件⑷ 选择【Edit】->【Perferences…】,在Font选项设置字体是Fixedsys, Script 是 CHINESE_GB2312⑸ 选择【Edit】->【DebugRel Settings…】,在DebugRel Settings对话框的左边 选择ARM Linker项,设置链接地址B-DebugRel Smttings1B-B-Targe tTarget Settin歹 Access PathE Build Eictras Ruittime Settin歹 File Mappings■- Source TreesAEM TargetLanguage Settin歹 AKM Assembler AEM C Compiler AEM C++ Compiler Thumb C Compiler Thumb C++ Com...LinkerCh丄切lit Upti ons | Layout | ListingE j Extras ]Remove urLUied sectioMP Read-only P Read-writw P Zero-initial:[77;Include debugging informat Search andard libr: Use AJJilUB to find libr Output local symbi厂 Give £ r o gi_ e s s in for ma tion while 厂 Rep or t "might fail" cond it ionz;ARM LinkerABM fromELF曰 Edi torImage 单心¥ p o i nt!quiv:alent Commani] Line-info t口talm -ro-base 0x40000000 -rw-base 0x400030003jdractory Setting: Rever t Imp or t FotleL . . Exp or t FotleL ..OK C :=ltlc el Apply(6)选择【Project】->【Make】,或者按下快捷键F7,将编译链接整个工程。

      ⑺选择【Project】->【Debug】,或者按下快捷键F5IDE环境就会启动AXD 调试软件,接着可以执行单步、全速运行调试注意:本实验使用软件仿真,所以要在 AXD 中选择【 Options】->【ConfigureTarget…】菜单,然后在Choose Target窗口中选用ARMUL软件仿真2.ADS1.2 操作实例一:汇编指令实验使用 LDR 指令读取 0x40003100 上的数据,将数据加 1,若结果小于 10 则使用 STR 指令把结果写回原地址,若结果大于等于 10,则把 0 写回原地 址„„周而复此循环;使用 ADS 1.2 软件仿真,单步、全速运行程序,设置断点,打开寄存器 窗口(Processor Registers)监视RO、R1的值,打开存储器观察窗口 (Memory)监 视0x40003100上的值1) 启动 ADS 1.2,使用 ARM Executable Image 工程模板建立一个工程 Instruction1 ⑵建立汇编源文件TEST2.S,编写实验程序,然后添加到工程中3) 设置工程链接地址 RO Base 为 0x40000000, RW Base 为 0x40003000。

      设 置调试入口地址 Image entry point 为 0x400000004) 编译链接工程,选择【Project】->【Debug】,启动AXD进行软件仿真调 试⑸ 打开寄存器窗口(Processor Registers),选择Current项监视各寄存器的值6) 打开存储器观察窗口 (Memory) 设置观察地址为 0x400031007) 单步运行程序,可以设置/取消断点,或者全速运行程序,停止程序运行 调试时观察寄存器和0x40003100地址上的值参考程序:COUNTEQUAREAENTRYCODE320x40003100 :定文一令变量,0x40003100 Exampl e2 :C ODEJiEADONLY :声明代码段亘mmpl边 :标识程序入口:声明32位指令STARTLDRR1:=COUNT iRl<= COUNTMOVR0,#0\R0<=0STRR0JR1]\ [Rl]< = R0f 即设置 COUNT 为 0LOOPLDRR1:=COUNTLDRR0;[Rl]:R0<= [Rl]ADDR0?R0f#l\R0<=R0-lCMPR0,# 10;R0与10比较,影响条件码标志MOVHSR0;#0:若皿 大于等于10,则业指令执行,R0<= 0STRR0JR1]:[Rl]< = R0f 即保存COUNTBLOOPEND3. ADS1.2操作实例二:C语言程序实验编写一个汇编程序文件Startup.S和一个C程序文件Test.c。

      汇编程序的 功能是初始化堆栈指针和初始化C程序的运行环境,然后调跳转到C程序运 行,这就是 一 个简单的 启动程 序 C 程 序 使用加法运算来计算 l+2+3+...+(N-l)+N 的值(N>0)1) 启动 ADS 1.2,使用 ARM Executable Image 工程模板建立一个工程 ProgramC⑵ 建立源文件Startup.S和Test.c,编写实验程序,然后添加到工程中3) 设置工程链接地址 RO Base 为 0x40000000,RW Base 为 0x40003000设 置调试入口地址 Image entry point 为 0x400000004) 设置位于开始位置的起始代码段为 Startup.o 的代码段5) 编译链接工程,选择【Project】->【Debug】,启动AXD进行软件仿真调 试6) 在Startup.S的跳转到C程序入口的代码处设置断点,然后全速动行程序7) 程序在断点处停止单步运行程序,判断程序是否跳转到C程序中运行 参考程序:汇编启动代码:Startup.S:起动文件.初始化C程序的运行环境,然后逆入C程序代码七IMP ORT | Image$$RO$$L imit|IMPORT | Image$$RW$$Ba se|IMPORT |Image$$ZI$$Base|IMPORT |Image$$ZI$$Limit| IMPORT Main :声明C程序中的麵鈕Q函数AREA Start :C ODE. READ ONLY;声明代码段也田 t ENTRY :标识程序入口C ODE32 ;声明 32 指令ResetLOOPOLOOP1LOOP2LDR SP=Qx40003F00 :初始化C程序的运行环境 LDRLDRLDRCMPBEQCMPLDRCCSTRCCBCCLDRMOVCMPSTRCC BCC 爲R0 =| Image$$RO$ $L im 训R1 =| Image$ $R.W$$Bas 日R 3:=| Image$ $ZI$ $Ba se|R0:RlLOOP1R1:R3R2:[R1];#4LOOPOR1 =| Image$ $ZI$ $L imit|R2^0R3:R1R2:[R3]r#4LOOP2Main :跳转到C程序代码^塔曲迫函数C 语言实验参考程序: Test.c#defineuintSunsigned char#defineuint32unsigned int#defineN100uint32sum:"使用加法运算来计算1-2-3-.-(N-l)-N 值& (N>0) void Mainfvoid){ uint32 kfoi(i=0; i<=N: i——){ sum—=i:thile(l):四、实验结果与分析1.ADS 中如何实现程序由汇编到 C 语言的跳转?2.如何在AXD中观察存储器的内容,如何实现对寄存器的监视?3.本实验的汇编程序中使用了哪几种寻址方式?实验二 汇编调用实验与 Bootloader 下载一、 实验目的和任务学习掌握在 C 程序调用汇编子程序的方法,本实验实现由 C 程序调用利用汇 编语言实现两个整数的加法运算。

      实现将 Bootloader 下载到 SST39VF1601二、 实验原理在 C 程序调用汇编子程序,三、 实验仪器设备装有ADS的PC机,ARM2410教学实验系统,EasyJTAG-H仿真器四、 实验步骤1.在C程序调用汇编子程序,实现两个整数的加法运算汇编子程序的原型为: uint32 Add(uint32 x, uint32 y), 其中 uint32 已定义为 unsigned into(1) 启动 ADS 1.2,使用 ARM Executable Image 工程模板建立一个工程 ProgramC1 2) 建立源文件Startup.S、Add.S和Test.c,编写实验程序,然后添加到工程 中3) 设置工程链接地址 RO Base 为 0x40000000, RW Base 为 0x40003000设 置调试入口地址 Image entry point 为 0x400000004) 设置工程链接选项,位于开始位置的起始代码段设置为 Startup.o 的代码 段5) 编译链接工程,选择【Project】->【Debug】,启动AXD进行软件仿真调 试6) 在Test.c文件中的调用Add()的代码处设置断点,然后全速动行程序。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.