嵌入式系统应用实验指导书Word格式.docx
- 文档编号:19013946
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:33
- 大小:548.87KB
嵌入式系统应用实验指导书Word格式.docx
《嵌入式系统应用实验指导书Word格式.docx》由会员分享,可在线阅读,更多相关《嵌入式系统应用实验指导书Word格式.docx(33页珍藏版)》请在冰豆网上搜索。
4.实验预习要求
仔细阅读“ADS集成开发环境及JTAG仿真器应用.pdf”或其它ADS相关资料,了解ADS工程编辑的内容。
(本实验使用软件仿真)
5.实验步骤
(1)在D:
\新建一个目录,目录名为experiment。
(2)启动ADS1.2IDE集成开发环境,选择【File】->
【New…】,使用ARMExecutableImage工程模板建立一个工程,名称为ADS,目录为D:
\experiment。
(3)选择【File】->
【New…】建立一个新的文件TEST1.S,设置直接添加到项目中。
输入如程序代码,并保存,此时在工程窗口中可以看到TEST1.S文件。
(4)选择【Edit】->
【Perferences…】,在Font选项设置字体是Fixedsys,Script是CHINESE。
(5)选择【Edit】->
【DebugRelSettings…】,在DebugRelSettings对话框的左边选择ARMLinker项,设置链接地址。
(6)选择【Project】->
【Make】,或者按下快捷键F7,将编译链接整个工程。
(7)选择【Project】->
【Debug】,或者按下快捷键F5。
IDE环境就会启动AXD调试软件,接着可以执行单步、全速运行调试。
注意:
本实验使用软件仿真,所以要在AXD中选择【Options】->
【ConfigureTarget…】菜单,然后在ChooseTarget窗口中选用ARMUL软件仿真。
6.思考题
(1)工程模板有何作用?
(2)如何强行重新编译工程的所有文件?
(提示:
选择【Project】->
【RemoveObjectCode…】删除工程中的*.obj文件)
实验二C语言程序实验
通过实验了解使用ADS1.2编写C语言程序,并进行调试。
PC机1台
Windows98/2000/XP操作系统;
ADS1.2集成开发环境
编写一个汇编程序文件Startup.S和一个C程序文件Test.c。
汇编程序的功能是初始化堆栈指针和初始化C程序的运行环境,然后调跳转到C程序运行,这就是一个简单的启动程序。
C程序使用加法运算来计算1+2+3+...+(N-1)+N的值(N>
0)。
(1)仔细阅读参考文献[1]第5章ARM指令集的内容;
(2)仔细阅读“ADS集成开发环境及JTAG仿真器应用.pdf”或其它ADS相关资料,了解ADS工程编辑和AXD调试的内容。
(1)启动ADS1.2,使用ARMExecutableImage工程模板建立一个工程ProgramC。
(2)建立源文件Startup.S和Test.c,编写实验程序,然后添加到工程中。
(3)设置工程链接地址ROBase为0x40000000,RWBase为0x40003000。
设置调试入口地址Imageentrypoint为0x40000000。
(4)设置位于开始位置的起始代码段为Startup.o的代码段。
(5)编译链接工程,选择【Project】->
【Debug】,启动AXD进行软件仿真调试。
(6)在Startup.S的跳转到C程序入口的代码处设置断点,然后全速动行程序。
(7)程序在断点处停止。
单步运行程序,判断程序是否跳转到C程序中运行。
在实验程序当中,Startup.S文件的作用是什么?
如果没有Startup.S文件,C程序会运行出错吗?
实验三GPIO输出控制实验
(1)掌握DeviceARM2410专用工程模板的使用;
(2)掌握EasyJTAG-H仿真器的安装和使用;
(3)能够在MagicARM2410实验箱上运行第一个程序(无操作系统);
(4)熟悉S3C2410A处理器的I/O配置方法及GPIO输出控制。
PC机1台;
MagicARM2410教学实验开发平台1台
软件:
控制MagicARM2410实验箱上的LED1~LED4显示及蜂鸣器报警。
先使用片外SDRAM进行调试,调试通过后将程序固化到片外NORFLASH中,脱机运行程序。
(1)仔细阅读参考文献[2]第9节的S3C2410A的GPIO模块说明;
(2)了解MagicARM2410实验箱的硬件结构,注意独立LED及蜂鸣器控制电路;
(3)仔细阅读“ADS集成开发环境及JTAG仿真器应用.pdf”或其它ADS相关资料,了解ADS1.2集成开发环境、DeviceARM2410专用工程模板、EasyJTAG-H仿真器的应用。
5.实验原理
S3C2410A具有117个通用I/O口,分为A~H等8个端口,由于每个I/O都有第2功能,甚至第3功能,所以需要通过设置GPxCON寄存器来选择GPx口I/O的功能,其中x可以为A、B、C、D、E、F、G、H,表示相应的I/O端口;
当I/O设置为GPIO输出模式(Output模式)时,可以通过写GPxDAT控制相应I/O口输出高电平或低电平。
GPxDAT为1的位对应I/O输出高电平,为0的位对应I/O输出低电平;
实验电路图。
6.实验步骤
调试程序
(1)为ADS1.2增加DeviceARM2410专用工程模板(若已增加过,此步省略)。
(2)连接EasyJTAG-H仿真器和MagicARM2410实验箱,然后安装EasyJTAG-H仿真器(若已经安装过,此步省略)。
(3)启动ADS1.2,使用ARMExecutableImageforDeviceARM2410工程模板建立一个工程LEDCON。
(4)在工程src组中的main.c中编写实验代码。
(5)选用DebugRel生成目标,然后编译链接工程。
(6)将MagicARM2410实验箱上的蜂鸣器跳线JP9短接,将启动方式选择跳线JP8短接,然后按RST键复位系统。
【Debug】,启动AXD进行JTAG仿真调试(需要正确设置仿真器,参考<
<
…实验指导>
>
第2章的内容)。
(8)全速运行程序,程序将会在main.c的主函数中停止(因为main函数起始处默认设置有断点)。
(9)单步运行程序,或者全速运行程序,判断蜂鸣器及LED1~LED4的控制是否正确。
固化程序
(10)仿真调试通过后,关闭AXD。
在ADS1.2集成开发环境中选用Release生成目标,并设置生成LEDCON.hex文件(或者LEDCON.bin文件),然后编译链接工程。
(11)将启动方式选择跳线JP8断开,然后按RST键复位系统。
(12)使用FlashProgrammer软件将LEDCON.hex烧写到片外NORFLASH,或者使用WR_NORFlash工程将LEDCON.bin烧写到片外NORFLASH。
(13)将EasyJTAG-H仿真器拔出,断开与MagicARM2410实验箱的连接,然后给MagicARM2410实验箱下电,然后再重新上电,观察程序是否能脱机运行。
7.思考题
(1)为什么这个实验的工程不需要设置链接地址?
DeviceARM2410专用工程模板已集成了启动代码、编译选项和链接地址设置等等)
(2)在S3C2410A处理器中,有哪些I/O只能设置为GPIO输出模式(Output模式)?
实验四GPIO输入实验
掌握3C2410A处理器的I/O配置方法,能够使用GPIO输入模式读取开关信号。
不断地读取GPF4口上的电平值,然后将读到的值输出控制蜂鸣器。
(2)了解MagicARM2410实验箱的硬件结构,注意蜂鸣器控制电路;
(3)仔细阅读“ADS集成开发环境及JTAG仿真器应用.pdf”或其它ADS相关资料,了解ADS1.2集成开发环境、DeviceARM2410专用工程模板、EasyJTAG-H仿真器的应用。
通过设置GPxCON寄存器来选择GPx口I/O的功能,当I/O设置为GPIO输入模式(Input模式)时,读取GPxDAT寄存器即取得I/O口线上的电平状态。
通常会使用if(GPxDAT&
(1<
n))语句来判断GPxn口是否为高电平;
MagicARM2410实验箱上使用了S3C2410A的GPF4口连接一个独立按键KEY1。
当KEY1键按下时,GPF4口上的电平值为0;
当KEY1键放开时,由上拉电阻将GPF4口拉到高电平,所以其电平值为1。
(1)启动ADS1.2,使用ARMExecutableImageforDeviceARM2410工程模板建立一个工程ReadKEY。
(2)在工程src组中的main.c中编写实验代码。
(3)选用DebugRel生成目标,然后编译链接工程。
(4)将MagicARM2410实验箱上的蜂鸣器跳线JP9短接,将启动方式选择跳线JP8短接,然后按RST键复位系统。
(5)选择【Project】->
【Debug】,启动AXD进行JTAG仿真调试。
(6)单步运行程序,先按下KEY1,观察rGPFDAT寄存器的值,然后释放KEY1,观察rGPFDAT寄存器的值。
向Watch窗口添加表达式*((unsignedlong*)0x56000054),rGPFDAT寄存器的地址0x56000054)
(7)全速运行程序,按下/放开KEY1按键,控制蜂鸣器的蜂鸣。
如果将GPF4设置为GPIO输入模式,且管脚悬空,那么读取GPF4得到的值是0还是1?
或者是不确定?
S3C2410A的I/O内部上拉电阻可以通过设置GPxUP寄存器使能或禁止)
实验五外部中断实验
(1)掌握S3C2410A处理器外部中断的引脚功能设置;
(2)掌握中断初始化以及中断服务函数的编写。
设置GPF4引脚为外部中断EINT4功能,下降沿触发模式。
初始化S3C2410A中断控制器,设置EINT4为IRQ中断,并使能中断允许。
初始化完成后,等待外部中断产生。
中断服务程序里负责把LED1控制口输出信号取反,清除中断标志后退出中断。
仔细阅读参考文献[2]第9节的S3C2410A的GPIO模块说明和第14节的中断控制器说明;
了解MagicARM2410实验箱的硬件结构,注意独立LED控制电路。
独立按键KEY1电路使用了GPF4口,设置GPFCON寄存器可以选择GPF4引脚为外部中断EINT4功能,此时通过按下KEY1键即可触发外部中断;
对于S3C2410A的众多中断源,通过设置INTMOD寄存器可将它们分为IRQ中断或FIQ中断,一般只设置一个中断源为FIQ中断。
对于多个IRQ中断,通过PRIORITY寄存器可以设置中断的优先级,一般将其设置为0使用默认固定的优先级即可;
设置INTMSK寄存器使能某个中断源的中断允许,有些中断源还需要设置SUBMASK寄存器使能(比如UART的发送中断和接收中断);
对于外部中断EINT4~EINT23,由于它们在S3C2410A的中断控制器中不是独立中断源(EINT4~EINT7共用一个中断源,EINT8~EINT23共用另一个中断源),所以还需要设置EINTMASK寄存器来使能某一个外部中断;
由于S3C2410A的中断控制器不是向量中断控制器,即处理器硬件不能自动获取对应于中断源的中断服务程序地址,所以在IRQ中断服务程序中要通过中断标志寄存器INTPND来获得对应的中断服务程序地址(参考ARMExecutableImageforDeviceARM2410工程模板的Target.c文件,其中的IRQ_Exception函数)。
在中断服务程序中,退出中断之前要清除中断标志,即对SRCPND和INTPND寄存器相应位写1,先清除SRCPND寄存器,再清除INTPND寄存器。
对于外部中断EINT4~EINT23中断,要最先清除EINTPEND寄存器中的中断标志。
(1)启动ADS1.2,使用ARMExecutableImageforDeviceARM2410工程模板建立一个工程EINT。
(4)将MagicARM2410实验箱上的启动方式选择跳线JP8短接,然后按RST键复位系统。
(6)在中断服务程序中设置断点,全速运行程序,按下/释放KEY1按键,使EINT4为低/高电平(产生中断)。
(7)取消中断服务程序中有断点,全速运行程序,按下/释放KEY1按键,观察LED1灯的变化。
EINT4与EINT0的中断设置和中断标志清除有什么异同?
实验六定时器实验
掌握S3C2410A的定时器基本设置及定时器中断应用。
使用S3C2410A的定时器0实现0.5秒的定时并产生中断,每产生一次中断即控制蜂鸣器的控制I/O口状态取反,相当于每1秒钟蜂鸣器响一声。
(1)仔细阅读参考文献[2]第10节的S3C2410A的PWM定时器模块说明和第14节的中断控制器说明;
(2)了解MagicARM2410实验箱的硬件结构,注意蜂鸣器控制电路。
S3C2410A具有5个16位定时器,其中有4个可以来控制PWM信号输出,所以称它们为PWM定时器。
定时器的时钟源是PCLK,5个定时器共享2个8位预分频器,经过预分频器之后,每个定时器还拥有4个不同分频信号(1/2,1/4,1/8和1/16)输出的时钟分割器,这样就可以使定时器的时钟范围更大。
预分频器的设置通过TCFG0寄存器实现,时钟分割器的分频选择(即定时器时钟源选择)设置通过TCFG1寄存器实现;
定时器是减法计数的,当定时器TCNTn的值倒数到0时,TCNTBn寄存器的值会被自动的加载到定时器继续下一次定时操作。
当定时器TCNTn的值倒数到0时,如果中断使能,将会产生一次定时器中断请求;
PWM定时器功能框图
PWM定时器基本操作图;
TCFG0和TCFG1寄存器;
TCON寄存器;
(1)启动ADS1.2,使用ARMExecutableImageforDeviceARM2410工程模板建立一个工程TimeOut。
(4)将MagicARM2410实验箱上的蜂鸣器控制电路的跳线JP9短接,将启动方式选择跳线JP8短接,然后按RST键复位系统。
(6)在中断服务函数中设置断点,全速运行程序观察是否能产生定时器中断。
取消设置断点,全速运行程序,蜂鸣器应每秒响一声。
使用定时器0来实现一个时钟,具有时、分、秒功能,应如何编写程序?
(要求每隔1S即通过串口向PC机发送时间)
实验七UART通讯实验
了解S3C2410A处理器的UART基本工作原理及配置操作;
能够使用S3C2410A处理器的UART进行数据发送和接收。
使用查询方式实现从UART0发送10次字符串“HelloWorld!
”,然后不断地接收串口上的字符再直接发送出去,要求能够处理回车键(Enter键)实现换行。
UART0设置为通讯波特率115200,8位数据位,1位停止位,无奇偶校验。
(1)仔细阅读参考文献[2]第11节的S3C2410A的UART模块说明;
(2)仔细阅读<
第1章的内容,了解MagicARM2410实验箱的硬件结构,注意RS232接口电路。
UART--通用异步串行通信接口的总称,UART允许在串行链路上进行全双工的通信,输出/输入的电平为TTL电平。
一般来说,全双工UART定义了一个串行发送引脚(TXD)和一个串行接收引脚(RXD),可以在同一时刻发送和接收数据;
RS232--是美国电子工业协会(EIA)制定的串行通讯标准,又称RS-232-C。
早期它被应用于计算机和调制解调器(MODEM)的连接控制,(MODEM)再通过电话线进行远距离的数据传输。
RS232是一个全双工的通讯标准,它可以同时进行数据接收和发送的工作。
RS232标准包括一个主通道和一个辅助通道,在多数情况下主要使用主通道,即RXD、TXD、GND信号;
RS232标准采用负逻辑方式,标准逻辑“1”对应-5V~-15V电平,标准逻辑“0”对应+5V~+15V电平。
因此UART的TTL电平需要进行RS232电平转换后,才能与RS232接口连接并通讯,可以使用SP3232E或SP3243ECA芯片进行电平转换;
UART数据通讯字符格式(8位数据位,无奇偶校验位,1位停止位)。
对串口进行初始化时,首先要设置相应I/O为TXD0、RXD0功能引脚,然后通过ULCON0寄存器来设置串口数据格式,通过UCON0寄存器来设置串口工作模式,最后通过UBRDIV0来设置通讯波特率;
使用串口发送数据时,将待发送数据写入UTXH0寄存器,然后通过读取UTRSTAT0寄存器的值判断数据是否发送完成;
进行串口数据接收时,通过读取UTRSTAT0寄存器的值判断是否接收到数据,如果接收到数据,则可以从URXH0寄存器中读出数据。
(1)启动ADS1.2,使用ARMExecutableImageforDeviceARM2410工程模板建立一个工程UART。
(4)将MagicARM2410实验箱上的UART0连接跳线JP1短接,使用串口延长线把MagicARM2410实验箱的CZ11与PC机的COM1连接。
(注意:
CZ11安装在MagicARM2410实验箱的机箱右侧)
(5)PC机上运行“超级终端”程序,设置串口波持率为115200,8位数据位,无奇偶校验位,1位停止位
(7)全速运行程序,观察“超级终端”的主窗口显示内容,然后在“超级终端”的主窗口中输入任意字符和回车键,观察“超级终端”的显示效果。
RS232的电平与S2C2410A的UART电平有什么差别?
实验八ADC实验
掌握S3C2410A的模/数(A/D)转换器的应用设置,进行电压信号的测量。
使用AIN0和AIN1测量两路直流电压,并将测量结果通过UART0向PC机发送。
仔细阅读参考文献[2]第16节的S3C2410A的ADC模块说明;
了解MagicARM2410实验箱的硬件结构,注意ADC部分的电路。
S3C2410A具有1个8通道的10位模数转换器(ADC),有采样保持功能,输入电压范围是0~3.3V,在2.5MHz的转换器时钟下,最大的转换速率可达500KSPS。
A/D转换器的AIN5、AIN7还可以与控制脚nYPON、YMON、nXPON和XMON配合,实现触摸屏输入功能;
ADC功能框图
为了正确使用A/D转换器,需要设置A/D转换器的时钟,还有A/D转换器的工作模式设置和输入通道选择,这都是通过ADCCON寄存器来设置的。
然后置位ADCCON寄存器的ENABLE_START位来控制启动A/D转换,读ADCCON寄存器的ECFLG位来判断A/D转换是否已经结束。
当一次A/D转换结束后,通过读ADCDAT0寄存器来取得A/D转换结果,寄存器的低10位数据有效;
ADCCON寄存器;
ADCTSC寄存器;
ADCDAT0寄存器;
(1)启动ADS1.2,使用ARMExecutableImageforDeviceARM2410工程模板建立一个工程ADC01。
(5)PC机上运行“超级终端”程序,设置串口波持率为115200,8位数据位,无奇偶校验位,1位停止位。
(7)全速运行程序,调整W1、W2改变测量的电压,观察PC机上的“超级终端”主窗口显示电压值是否正确。
若需要采用中断方式进行A/D转换,应如何设计实验程序代码?
实验九μC/OS-II移植实验
1.实验目
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 应用 实验 指导书