嵌入式系统实验指导书

上传人:无*** 文档编号:86521868 上传时间:2022-05-07 格式:DOC 页数:38 大小:1.65MB
返回 下载 相关 举报
嵌入式系统实验指导书_第1页
第1页 / 共38页
嵌入式系统实验指导书_第2页
第2页 / 共38页
嵌入式系统实验指导书_第3页
第3页 / 共38页
点击查看更多>>
资源描述
第1局部 DK-LM3S9B92 教学实验平台简介1.1 Stellaris LM3S9B92开发板 本书中的所有实验都是基于DK-LM3S9B92开发平台,LM3S9B92开发板提供了一个平台给基于ARM Cortex-M3的高性能的LM3S9B92微控制器开发系统。 LM3S9B92是Stellaris Tempest-class微控制器家族的成员之一。Tempest-class系列设备拥有性能为80MHz的时钟速率,一个外围设备接口EPI和Audio I2S接口。除了支持这些功能的新硬件外,DK-LM3S9B92还包含了一系列丰富的基于其他Stellaris 板的外设。 开发板包括一个板载线上调试接口on-board in-circuit debug interface,ICDI,该接口支持JTAG和SWD调试。一个标准的ARM 20针脚的调试头支持大量的调试解决方案。 Stellaris LM3S9B92开发套件加快了Tempest-class微控制器的开发。该套件还包含了完整的实验源代码。StellarisLM3S9B92开发板包含以下特性: n 设置简单的USB线提供调试、通讯和供电功能 n 拥有众多外设的灵活开发平台 n 彩色LCD图形显示 320240分辨率的TFT LCD模块 电阻式触摸接口 n 拥有256K闪存,96K SDRAM以与整合以太网、MAC+PHY、USB OTG和CAN通讯功能的80 MHz LM3S9B92 微控制器 n 8MB SDRAM扩展通过EPI接口 n 1MB串行闪存 n 准确电压参考 n 微处理器ROM中建SAFERTOS操作系统 n I2S立体声音频编解码器 输入输出 耳机输出 麦克风输入 n 控制器区域网络CAN接口 n 10/100 BaseT 以太网 n USB On-The-GoOTG连接器 Device、Host、 以与OTG模式 n 用户LED和按钮 n 指轮电位器可以用于菜单导航 n MicroSD 卡插槽 n 支持一系列调试选项 集成在线调试接口ICDI 全面支持JTAG、SWD和 SWO 标准的ARM 20 针脚 JTAG 调试连接器 n USB 虚拟 端口 n 跳线分流方便重新分配I/O 资源 n 为StellarisWare 软件所支持,包括图形库、USB 库和外围驱动库 图1-1 DK-LM3S9B92开发板1.1.1 开发工具清单 Stellaris LM3S9B92 开发工具包括开发和运行使用Stellaris微处理器的应用程序所需的所有东西:n LM3S9B92 开发板 n 网线 n 用于调试的USB Mini-B 线缆 n 用于OTG 连接PC 的USB Micro-B 线缆 n 用于USB 主机的连接USB A 适配器的USB Micro-A 线缆 n USB 闪存记忆棒 n microSD 卡 n 20 位带状电缆线 n 光盘包含以下工具的评估版本: StellarisWare 与用于本开发板的实验代码 IAR Embedded Workbench Kickstart Edition 1.1.2 系统框图图1-2 DK-LM3S9B92开发板框图1.1.3 开发板说明 n 开发板的供电电压:5.25 VDC,从以下的输入源中的一个得到: 调试器ICDIUSB 线缆连接至PC USB Micro-B 线缆连接至PC 直流电源插孔2.1x5.5mm 由外部电源供给 n 尺寸: - 107mmx 114mm n 模拟参考电压:3.0V +/-0.2% n RoHS 状态:符合 注:当LM3S9B92开发板工作在USB主机模式时,主机的连接器供电给已连接的USB 设备。有效的供给电流被限制在200mA,除非开发板用5v,600mA的外部电源供电。1.2 硬件描述除了一个LM3S9B92微处理器之外,开发板还具备了许多有用的外围设备功能和一个集成在线调试接口ICDI,本章将介绍这些外围设备如何工作和微处理器的接口。 Stellaris LM3S9B92是一个基于Cortex-M3核的微处理器,拥有256K闪存、80MHz时钟周期、以太网接口、USB、EPI、ROM建SAFERTOS还有大量的外设。详情请参见LM3S9B92微控制器数据手册随书附赠光盘“4技术资料文件夹中的Datasheet-LM3S9B92文件。跳线和GPIO分配 每一个开发板上的外设电路是通过一个间距的跳线连接到LM3S9B92微控制器。图 1-3显示了跳线出厂时的默认设置。跳线在默认设置时才可以正确无误的运行快速启动演示程序。 出产默认跳线设置。默认连接的跳线:JP1,JP2,JP3JP13,JP16JP32,JP34,JP37JP43,JP46,JP48,JP50JP56,JP58,JP60JP61。默认不连接的跳线: JP14JP15,JP33,JP35,JP44,JP45,JP47,JP49,JP57,JP65。 图 1-3 默认跳线设置开发板提供了许多功能但是由于引脚数和GPIO复用的限制,不能同时支持多项功能。举个例子,开发板不能同时支持SDRAM和I2S接口接收麦克风或线路输入功能设置。与I2S接口接收相关的跳线在默认设置没有接上。 表 1-1列出了出厂默认设置中没有被连接的功能和外设。使用这些外设需要将其他相关的外设断开连接。在表 1-1中,结合一些用到这块板的StellarisWare例程序,列出了可选的跳线设置。表 1-1 板功能与在默认设置中不连接的外围设备外 部 设 备跳 线I2S Receive (Audio Input) JP44, 45, 47, 49 控制器局域网络(CAN) JP14, 15 Ethernet Yellow Status LED (LED2) JP2 模拟参考电压 JP33 GPIO分配详情如附录B。该表列出了所有默认的且被跳线和PCB布线所支持的可选配置。LM3S9B92拥有额外的部复用,这将需要额外的配置,使得外设和GPIO引脚之间可能需要分开布线。 板上的ICDI局部有一个没有实际功能的GND-GND跳线,该跳线仅为“摆放空闲跳线开关帽而提供方便的地方。当需要时,这根跳线可以重复使用。 时钟 开发板使用一个 Y2晶振完成LM3S9B92微处理器的部主时钟电路。使用一个可代码配置的部PLL来倍频此时钟到更高的频率,以供核和外设时钟使用。 一个Y1晶振为以太网物理层Ethernet PHY提供一个精准的时基。 复位 LM3S9B92微控制器的复位信号RESETn连接到了复位开关SW2和ICDI电路。连接到ICDI电路作为调试控制复位。 以下三种事件中的一种会导致外部复位信号生效低电平: n 上电复位通过一个R-C回路实现 n 复位开关SW2被按下 n 当调试器发出复位指令时,由ICDI电路U12 FT2232,U13D 74LVC125A产生复位信号。此功能可选,可能不是所有调试器都支持此功能 LCD模块要求有特殊的复位时序,需要来自微控制器的专用控制线。电源 此开发板需要一个稳压电源,跳线JP34、JP35和电源拨动开关J16用于电源选择,默认的电源输入是ICDI USB接口。为防止电源间的冲突,在任何时侯只能使用一个电压源。 当USB处于主机Host状态时,如果+5V电源可用非板上该电源应当选择为ICDI或外部电源。 该开发板上具有两个主电源。一个电源为微控制器和大多数电路供电。+5V用于OTG USB端口和在线调试接口ICDIUSB控制器供电。一个低压降LDO稳压器U5将+5 V电源转换为。这两个电源都被连接到了测试口,以便使用。 USB 此LM3S9B92的全速USB控制器支持On-the-Go,主机和设备配置。USB相关信号信息参考表 1-2。5针脚的microAB OTG连接头支持这三种接口和包含在套件中的配套电缆。 USB端口既有额外的高达15KV的ESD保护二极管阵列。表 1-2 USB相关信息微控制器引脚板 功 能跳线名称Pin 70 USB0DM USB Data- Pin 71 USB0D USB Data+ Pin 73 USB0RBIAS USB bias resistor Pin 66 USB0ID OTG ID signal输入到微控制器 OTG ID Pin 67 USB0VBUS Vbus Level monitoring +VBUS Pin 34 USB0EPE Host power enable高电平有效 EPEN Pin 35 USB0PFLT Host power fault signal低电平有效 PFLT U6是一个故障保护开关,监控USB主机端口的电源。USB0EPEN是微控制器的控制信号,有一个下拉电阻,以确保在复位时主机的端口电源被切断。如果所连接的USB设备电流消耗超过1A或者开关的热限制被设备超出消耗超过500mA,如此电源开关会被马上切断。USB0PFLT信号线指示过载电流的状态,反应至微控制器。 此开发板可以是一个总线供电的USB设备或是自供电USB设备,这决定于电源所跳线的配置。 当在USB主机模式中使用开发板时,EVB的电源应由在线调试接口ICDIUSB连接线或连接到直流电源插孔的+5V所供给。 注:LM3S9B92的USB功能是完全独立于在线调试接口USB功能。调试 Stellatis微控制器支持通过JTAG或SWD编程和调试,JTAG使用TCK、TMS,TDI和TDO信号。SWD要求的信号较少SWCLK,SWDIO,和可选择的跟踪信号SWO。由调试器决定使用何种调试协议。n 调试模式 此LM3S9B92开发板支持一系列硬件调试配置,如表 1-3所示。表 1-3 硬件调试配置模式调试功能用 途选 定1 置的ICDI 在板上LM3S9B92通过USB接口调试微控制器 默认模式 2 输出到JTAG/SWD的ICDI接头 开发板被用作USB到SWD/JTAG的接口连接到外部目标板 连接到外部目标并开始调试程序 3 从JTAG/SWD接头输入 提供给需要使用带EVB外部调试接口ULINK,JLINK等的用户 连接一个外部调试器到JTAG/SWD n 调试须知事项 调试模式3支持使用外部调试接口的板载调试,例如Segger J-Link 或Keil ULINK。大多数调试器用调试连接器的1号引脚来检测目标板的电压,在某些情况下,为输出逻辑电路供电。为使用外部调试器,必须使得VDD/PIN1跳线开关合上,从而使此引脚带上电压。 n 调试USB概述 使用Future Technology Devices International公司的FT2232芯片来实现USB-to-serial的转换。FT2232默认设置可以在通道A上使用一个JTAG/SWD 端口串行接口和一个在通道B上使用的虚拟接口VCP。此功能允许主机和目标设备利用一条USB线同步通讯。在文档和软件CD盘中提供了每个功能的独立Windows驱动。 在线调试接口USB的功能完全独立于LM3S9B92芯片上的USB功能 。 FT2232芯片的配置数据由一个小的串行EEPROM存储。该EEPROM是不可被LM3S9B92微控制器访问的。 关于FT2232运作的全部细节,请访问 ftdichip.。 n USB到JTAG/SWD FT2232 USB设备在调试器控制下执行JTAG/SWD串行操作。一个简单的逻辑电路复用SWD和JTAG功能,在SWD模式下工作时,为双向数据线提供方向控制。 n 虚拟串行通信端口 虚拟串行通信端口VCP允许Windows应用程序如超级终端与LM3S9B92上的UART0通过USB通信。一旦安装FT2232 VCP设备驱动后,Windows会分配一个串行通信端口号到VCP通道。表 1-4列出了调试相关信号。表 1-4 相关调试信号微控制器引脚板 功 能跳线名称Pin 77 TDO/SWO JTAG data out or trace data out TDO Pin 78 TDI JTAG data in TDI Pin 79 TMS/SWDIO JTAG TMS or SWD data in/out TMS Pin 80 TCK/SWCLK JTAG Clock or SWD clock TCK Pin 26 PA0/U0RX Virtual port data to LM3S9B92 VCPRX Pin 27 PA1/U0TX Virtual port data from LM3S9B92 VCPTX Pin 64 RSTn 系统复位 RSTn n 串行线输出SWO 开发板支持Cortex-M3串行线输出SWO跟踪功能。在调试器控制下,板上的逻辑电路可将SWO数据流发送到VCP传送通道。调试器软件便可对从虚拟串行通信端口处接收到的跟踪信息解码和解释。当使用SWO时,中断UART0和虚拟串口VCP的连接。并不是所有的调试器都支持SWO。 更多跟踪端口接口单元Trace Port Interface Unit,TPIU的信息请参考StellarisLM3S9B92微控制器数据手册。 彩色QVGA LCD触摸显示屏 此开发板采用分辨率为320 x 240像素的TFT液晶图像显示器。该显示器使用前应除去在运输过程使用的保护塑料薄膜。 n 特性 LCD模块具有的特性包括: 高品质a-Si TFT LCD单元 262,144/65,536 颜色值 80-系统8位接口 支持高速butst-GRAM写功能 支持局部屏幕显示 支持睡眠和待机两种模式以节省电源 高比照度,高明度 重量轻,体形小 低功耗 4线模拟电阻触摸面板 n 控制界面 彩色LCD有一个置的多模式并行接口控制器IC,开发板使用一个8位的8080型接口GPIO D口,作为数据总线。表 1-5列出了LCD相关信号:表 1-5 液晶显示器信号微控制器引脚板 功 能跳线名称PE6/ADC1 Touch X+ X+ PE3 Touch Y- Y- PE2 Touch X- X- PE7/ADC0 Touch Y+ Y+ PB7 LCD复位 LRSTn PD0.7 LCD 数据总线 0.7 LD0.7 PH7 LCD 数据/控制选择 LDC PB5 LCD读出选通 LRDn PH6 LCD写入选通 LWRn - 背光灯控制 BLON n 规格说明 表 1-6 TFT-LCD 模块序号项目名称特性1类型 透射型 2显示模式 平常白 3像素单元 a-Si TFT 4屏幕尺寸 2.6 inch (对角) 5分辨率 240(RGB)320 6色数 65,536/262,144 7有效面积 51.84(mm) 8点距 66198(m) 9色彩 RGB条纹RGB-stripe 10装配类型 COG 11IC S6D0154 12背光 LED 13视觉方向 12 oclock 14模块尺寸 46643.5(mm) 15电源 2.53.3 V 16接口 80-System16/8 bit I/F 17外表处理 紫外线保护 表 1-7 触摸面板序号项目名称规格备注1类型4 线模拟电阻式2输入模式手写笔或手指接触3外表处理透明型4玻璃厚度0.5(mm)5有效区域40.6x57.65(mm)6可视围42x58.15(mm)7外形尺寸45.6x63.5x1.0(mm)8触摸力度80 (gf)手指或手写笔在有效区域,而不是在边缘和点隔片之间。9外表硬度9 3HJIS-K5400n 背光 白色LED背光显示必须清晰可见。U7TPS60230实现一个80mA的恒定电流LED的背光电源,LCD共有4个并联LED,每个电流大约20mA。背光通常不由微控制器控制,但是,接口处的控制信号仍然有效。跳线连接到GND可使背光失效。另外,可使用一根导线通过一个空闲的微控制器GPIO线路控制此信号。由于此TPS60230工作于恒定电流模式,如果断开LCD,它的输出电压将会跳变。 n 电源 此LCD模块置偏置电压发生器,仅需要一个的直流电源。 n 电阻触摸屏 4线电阻触摸屏可通过使用2个ADC通道和2个GPIO信号直接与微控制器连接。更多电阻触摸屏信息请参考StellarisWare源代码。I2S音频 LM3S9B92开发板的高级音频功能使用了I2S音频TLV320AIC23解码器。出厂默认配置音频输出已启用线路输出和耳机输出。音频输入要求四个额外的I2S信号线路输入和麦克风。四个音频接口都使用1/8寸毫米立体声插孔。表 1-8列出了I2S音频相关信号。表 1-8 I2S音频相关信号微控制器引脚板 功 能跳线名称I2C0SDA编解码器的配置数据SDAI2C0SCL编解码器的配置时钟SCLI2STXSD音频输出串行数据TXSDI2STXWS音频输出帧信号TXWSI2STXSCK音频输出比特时钟BCLKaI2STXMCLK音频输出系统时钟MCLKI2SRXSD音频输入串行数据RXSDbI2SRXWS音频输入帧信号RXWSbI2SRXSCK音频输入比特时钟BCLKbI2SRXMCLK音频输入系统时钟MCLKba.与基准模拟电压共享GPIO线路,默认连接跳线。 b.与LCD数据总线共享GPIO线路-端口D,跳线默认不接连。音频编解码器拥有假如干使用I2C总线信号进展配置的控制存放器。使用I2C时,编解码器配置只能写入,不能读取。更多信息可参考StellarisWare编程资料例和完整介绍TLV320AIX23B存放器的数据手册。 耳机输出可直接连接到任意标准耳机。线路输出适用于连接到一个外置音箱,包括PC台式扬声器。用户切换和LED 开发板提供一个用户切换按钮和指示灯,如表 1-9所示。表 1-9 开关信号导航微控制器引脚板载功能跳线名称PJ7用户切换切换PF3用户指示灯LEDaa. 共享黄色指示灯以太网插口,默认连接跳线 SDRAM扩展板 SDRAM提供8MB存4M16,一旦配置完成将成为LM3S9B92位于或的存储器映射。SDRAM接口多路传输DQ00.14和 AD/BA0.14无需外部锁存器或缓冲区。 1.3 使用在线调试接口 此StellarisLM3S9B92开发板可用作在线调试接口ICDI。ICDI充当一个USB接口连接到JTAG /SWD适配器,并允许调试外部任何一个使用Stellaris微控制器的目标板。请参阅“调试模式中关于“如何进入调试输出模式的描述。图1-4 ICD的接口模式调试接口能作用于串口调试SWD或JTAG模式中,此决定于IDE调试器的配置。 此IDE调试器不能区分板上的Stellaris微控制器和外部Stellaris微控制器,要求适当的Stellaris设备已在项目配置中被选择。 Stellaris目标板应有一个的信号引脚头,如附录B3所示。这适用于外部的Stellaris微控制器目标调试输出模式和外部的JTAG /SWD调试器调试输入模式。 ICDI不控制RST设备复位或TRST测试复位信号。这两种复位功能被用于JTAG /SWD,所以这些信号通常是不必要的。 建议连接所有GND引脚,无论如何,目标和外部调试接口必须连接引脚5并且至少有一个GND引脚连接到地。一些外部调试接口可能需要给定一个电压以设置线路驱动的门限值。如果一个外部调试器连接,开发板ICDI电路自动设置引脚1为高电平,在其他模式中,引脚1设置为未使用的。第2局部 LM3S9B92开发环境简介2.1 开发环境使用本实验评估板需要以下硬件和软件调试工具。硬件:装有winxp 或win7的PC机一台,lm3s9b92评估板,用于调试的usb Mini-B数据线。软件:Luminary FTDI仿真驱动程序,Keil RealView MDK 开发环境。2.1.1 硬件连接把USB mini-B数据线的 mini B 接口插在开发板的J13处,另一端连接计算机的USB接口。2.1.2 Luminary FTDI仿真驱动程序的安装DK-LM3S9B92 开发板嵌有 USB 接口的下载仿真器,在正常使用之前必须要安装Luminary专用的 FTDI 驱动程序。该驱动程序存放在开发板光盘Tools目录下的FTDI文件夹下。具体安装步骤如下:1、 将连接有usb mini-B数据线的DK-lm3s9b92开发板连接到电脑上,此时windows会提示“发现新硬件,接着弹出“找到新的硬件向导对话框,如图2-1。选择“否,暂时不,按下一步。图2-1 安装 LuminaryFTDI 驱动:硬件安装向导2、 选择“从列表或指定位置安装(高级),按“下一步 ,如图 2-2 所示。现在安装的是“Stellaris Development Board A。图2-2 安装 LuminaryFTDI 驱动:选择指定位置安装3、 勾中“ 在搜索中包括这个位置,按浏览,打开路径“G:Tools FTDI,按下一步。如图2-3所示。 图2-3 安装 LuminaryFTDI 驱动:选择驱动程序位置4、 在安装完评估板 A 之后,还会继续对“Stellaris Development Board B和“Stellaris Virtual Port安装,安装方法都类似,都在一样目录下搜索驱动。 5、 3个驱动程序全部安装完成后,可以打开 Windows 的设备管理器来查看相关设备信息。打开设备管理器后,就能看到刚刚安装的设备了,如图2-4所示。 图2-4 安装LuminaryFTDI 驱动:查看设备管理器如果LuminaryFTDI驱动程序装错了,或者以后要升级为最新版本的驱动程序,如此需要首先卸载。卸载时先把开发板连接到电脑上,然后打开 Windows 设备管理器,找到“Stellaris Virtual Port (x),点右键,选择“卸载。以同样的方法卸载“Stellaris Development Board A、“Stellaris Development Board B和“USB posite Device。 截至2009年10月,Luminary Micro 官方发布了最新的Stellaris外设驱动库版本“PDL-LM3S-5228。驱动库完全基于ANSIC标准编写,并且源代码也是公开的,因此读者完全可以摒弃晦涩难懂的汇编语言,也不需要掌握底层存放器的操作细节,只要懂 C 语言就能轻松玩转 Stellaris系列ARM。这也使得学习开发32位ARM 的入门门槛大大降低。 只要登陆“.LuminaryMicro.并注册用户信息,就能够免费下载到最新的驱动库版本。2.1.3安装Keil RealView MDK现在,能够支持仪器公司Stellaris系列ARM 的软件开发平台主要有 Keil、IAR、Cross、CodeSourcery、CodeRed等。这些软件各具特色,其中 IAR EWARM 集成开发环境具有编译效率高、32KB 免费评估版、在线仿真本钱低等优势。考虑到同学们之前接触过Keil开发环境,这里选择使用keil。我们选择的是4.50版本的Keil Realview MDK。按照成功后将在桌面上看到如如下图2-5图标。图2-5 keil4快捷图标2.2 Keil在DK-LM3s9b92开发板上的使用下面以LM3s9b92开发板附赠的光盘的“Blinky程序为例,说明如何在keil开发环境下,开发适合于LM3s9b92开发板的可运行程序。Blinky的示例代码在光盘 “labslab3_gpio_interrupttask1_gpio路径注:光盘的所有示例程序是应用IAR开发环境开发;对于不同的开发环境只是配置不同,源程序可以重用。2.2.1 新建工程目录选择在某个目录下,新建一个工程目录,在这里,我们在E盘下新建一个LED_Blink目录作为工程目录,即“E:LED_Blink。2.2.2 新建工程在新建目录“LED_Blink中,新建基于芯片LM3s9b92的工程,并把该工程命名为“LED_Blink。具体操作如下:(1) 打开keil开发环境;(2) 通过点击“Project菜单下的“new uvison project选项新建工程,先选择存放工程的目录,这里选定新建的目录“E:LED_Blink为工程目录,如图2-6;同时给工程命名,在此我们把它命名为“LED_Blink,如图2-7,并点击保存。图2-6 选择工程目录图2-7 命名工程名接着选择工程的开发目标器件:选择TITexas instruments公司的LM3s9b92为目标器件,如图2-8和图2-9。 图2-8 选择器件厂家图2-9 选择器件名称选定后,并单击“OK保存设置。接着将弹出如图2-10所示的对话框,该对话框是向开发者询问“是否将所选目标器件对应的启动文件添加到工程目录中,我们选择“是。紧接着我们可以在工程窗口看到被添加的启动文件“,如图2-11。图2-10 添加启动文件的提示框图2-12 添加的启动文件Startup2.2.3 添加源文件程序代码1、 添加主程序:把光盘“labslab3_gpio_interrupttask1_gpio目录下的“文件复制到新建的工程目录“E:LED_Blink下,如图2-13。并通过工程窗口的添加文件功能把“文件添加到工程“LED_Blink中,添加成功后,将在工程窗口中看到该文件的文件名,如图2-14所示。图2-13 工程目录下添加源文件图2-14 工程添加源文件2、 添加驱动程序和库文件:LM3s9b92开发对应的头文件、库文件以与驱动程序在光盘“labsStellarisWare目录。共有三个库目录:driverlib、grlib、usblib,它们分别对应外设驱动库、图形库、usb库;“inc目录中只是存放与芯片外设相关的头文件,另外还有根据开发板电路配置的驱动程序在目录“drivers中。 假如进入库目录查看,里面不仅有各库对应的源程序,还有一些子目录,比如“ewarm、“rvmdk等,这些子目录存放的是不同开发环境下,各库对应的生成库。比如,rvmdk目录下存放的是ARM/Keil的“MDK开发环境下可执行库。A、 库文件和头文件的添加:把光盘下的driverlib、grlib、inc三个目录复制到工程目录“E:LED_Blink下。因为“源程序中需要用到driverlib和grlib库,因此需要通过工程窗口添加这两个库对应在keil开发环境下的库,添加方法和添加源程序的方法一样。下面以添加driverlib为例说明:参照图2-15、2-16、2-17操作。在图2-17中选中“库文件,单击“Add按钮。之后,我们会在工程窗口中看到包含了该库文件。添加完两个库后的工程窗口如图2-18所示。图2-15图2-16图2-17图2-18添加头文件可以采用指明工程需要include的头文件的存放路径的方式,参加工程中。这里的路径最好采用相对于工程文件的相对路径。具体设置方法如下:打开该工程的“Option选项对话框,选择其中的“C/C+标签,如图2-19。在该标签页“Includs Paths对应的文本框写上“程序中需要用到头文件相对于工程文件的相对路径即可,如图2-20所示。这里是写上“.,它表示指向的路径为在当前工程文件所在目录。 图2-19 C/C+标签页图2-20 填写头文件相对工程文件的相对路径B、 添加驱动程序:在“程序文件中用到了关于触摸屏、开发板上LM3s9b92芯片引脚配置驱动程序。这些程序在光盘“labsStellarisWare目录下的目录“drivers中。所以把“drivers目录复制到工程目录“E:LED_Blink中。接着并像添加程序文件“一样,把“drivers目录中的“、“添加到工程窗口中,结果如图2-21所示。图2-212.2.4 为工程的编译、连接、运行以与调试进展配置在工程窗口选中工程文件夹,然后单击右键在弹出的快捷菜单中选择“Option选项,或者单击“Project下拉菜单的“Option选项,弹出如图2-22对话框,进展如下设置:图2-22(1) 单击对话框中的“Target选项,将“Target选项卡下的晶振“Xtal按照开发板设置为“,并将“Code Generation区的“Use Microlib选项钩上。如上图2-22所示。(2) 单击对话框中的“Debug选项,如图2-23选中“Use,并将“Use后的下拉组合框选为“Stellaris ICDI。设置好后,再点击下拉组合框后的“Setings按钮,将弹出图2-24所示的对话框,在该对话框,务必保证“FLash区是选择了“Page Erase(erase only necessary pages),而且后面的复选项不能选择“Reset and Run,否如此将烧坏Flash芯片。图2-23图2-24(3) 单击对话框中的“Utilities选项,如图2-25所示选中“Use Target Driver for Flash Programming选项,并将该选项下的下拉组合框选为“Stellaris ICDI,通过点击“Settings按钮弹出的对话框的设置方式同上面步骤2说明操作。图2-252.2.5 编译、在工程窗口选中工程文件夹,单击右键在弹出的快捷菜单中选择“Rebuild all target files选项,或者单击“Project下拉菜单的“Rebuild all target files选项,进展编译。如果有错误如此做相应的修改,直到出现 0 error为止。这时软件会自动生成运行于Arm处理器中的可执行文件“。2.2.6 加载项目下载项目到目标板在加载项目前,先把开发板通过USB接口连接到PC机上,在keil界面中选择主菜单FlashDownload,或者单击快捷键,开始装载“文件。2.2.7 启动调试在Keil界面中选择主菜单Debugstart/stop debug session,或者单击快捷键,进入调试状态。2.2.8 运行程序在Keil界面中选择主菜单DebugRun,或者单击快捷键,运行程序。程序运行后,会看到液晶屏上有显示一些字符,同时开发板上有两只LED灯在闪烁。2.2.9 退出运行状态在Keil界面中选择主菜单DebugStop,或者单击快捷键,如此退出运行状态。但是此时仍然处于调试状态,假如要退出调试,返回开发状态,如此单击或者通过主菜单Debugstart/stop debug session。第3局部 LM3s9b92开发实例3.1 GPIO实验一、 实验目的学会编程控制 GPIO口二、 实验设备计算机、LM3S9B92开发板、USB A型公口转 Mini B型 5Pin 数据线1 条三、 实验原理LM3s9b92包含九个GPIO模块,每个模块对应一个GPIO端口PA、PB、PC、PD、PE、PF、PG、PH。每个GPIO端口包含8个管脚,如PA端口是PA0PA7。GPIO模块遵循FiRMFoundation IP for Real-Time Microcontrollers规,并且支持多达60个可编程输入/输出管脚具体取决于与GPIO复用的外设的使用情况。图3-1 该开发板的PJ7引脚外接输入按键SW1,PF3引脚通过电阻R11可以驱动LED1,如图3-1所示。实验要求通过编程控制和配置GPIO引脚,实现按键SW1控制LED1的闪烁。四、 实验步骤1、 连接实验设备:使用USB mini B线缆的mini端与开发板ICDI口相连,另一端接到PC机的USB插口上。2、 根据光盘提供的blinky例程,在Keil开发环境下搭建新的工程,并进展相关配置。调试程序,运行程序,观察运行结果。五、 实验结果与分析1、 结合开发板电路原理图,分析程序实现两个LED灯闪烁的原理。2、 给出程序流程图3、 说明程序中调用了哪些库和库函数,并说明各库的功能。六、 实验二次开发 参照实现LED灯闪烁的原理,实现通过开发板上按键SW1控制LED1的亮与灭,给出程序框图和源代码。3.2基于systick秒表的实现一、 实验目的学会编写中断程序学会应用LM3S9b92的systick系统时钟节拍计数器。二、 实验设备计算机、LM3S9B92开发板、USB A型公口转 Mini B型 5Pin 数据线1 条三、 实验原理SysTick是一个简单的系统时钟节拍计数器,它属于ARM Cortex-M3核嵌套向量中断控制器NVIC里的一个功能单元,而非片外设。SysTick常用于操作系统如:C/OS-II、FreeRTOS等的系统节拍定时。由于SysTick是属于ARM Cortex-M3核里的一个功能单元,因此使用SysTick作为操作系统节拍定时,使得操作系统代码在不同厂家的ARM Cortex-M3核芯片上都能够方便地进展移植。当然,在不采用操作系统的场合下SysTick完全可以作为一般的定时/计数器来使用。SysTick是一个24位的计数器,采用倒计时方式。SysTick设定初值并使能后,每经过1个系统时钟周期,计数值就减1。计数到0时,SysTick计数器自动重装初值并继续运行,同时申请中断,以通知系统下一步做何动作。四、 实验要求应用systick系统时钟节拍计数器进展计时,实现秒表功能。开发板上的按键SW1起秒表的起始和停止作用,按下SW1键,表示秒表的启动,开始计时,再按下SW1键,如此表示秒表的停止。秒表时间的显示,可以采用LED1灯的闪烁方式,或者直接显示在液晶屏上。五、 实验步骤1、 连接实验设备:使用USB mini B线缆的mini端与开发板ICDI口相连,另一端接到PC机的USB插口上。2、 根据实验要求编写、调试、运行程序。并要求在代码上附上相关的注释。3、 书写实验报告,要求附上程序流程图。3.3基于通用定时器秒表的实现一、 实验目的学会编写中断程序学会应用LM3S9b92的通用定时器比拟通用定时器和systick的特性二、 实验设备计算机、LM3S9B92开发板、USB A型公口转 Mini B型 5Pin 数据线1 条三、 实验原理在Stellaris系列ARM部通常集成有4个通用定时器模块General-Purpose Timer Module,GPTM,分别称为Timer0、Timer1、Timer2和Timer3。它们的用法是一样的:每个Timer模块都可以配置为一个32位定时器或一个32位RTC定时器;也可以拆分为两个16位的定时/计数器TimerA和TimerB,它们可以被配置为独立运行的定时器、事件计数器或PWM等。四、 实验要求参照systick设计秒表的思路,应用通用定时器进展计时,实现秒表功能。开发板上的按键SW1起秒表的起始和停止作用,按下SW1键,表示秒表的启动,开始计时,再按下SW1键,如此表示秒表的停止。秒表时间的显示,可以采用LED1灯的闪烁方式,或者直接显示在液晶屏上。五、 实验步骤1、 连接实验设备:使用USB mini B线缆的mini端与开发板ICDI口相连,另一端接到PC机的USB插口上。2、 根据实验要求编写、调试、运行程序。并要求在代码上附上相关的注释。3、 书写实验报告,要求附上程序流程图。六、 实验心得比拟systick定时器和通用定时器的特性。3.4基于UART的加法器的实现一、 实验目的学习lm3s9b92的串口通信学习应用超级终端调试串口学会应用UART有关的库函数二、 实验设备计算机、LM3S9B92开发板、USB A型公口转 Mini B型 5Pin 数据线1 条三、 实验原理Stellaris系列ARM的UART具有完全可编程、16C550型串行接口的特性。Stellaris系列ARM含有2至3个UART模块。该指导书在第一局部的1.2节中说明,该开发板使用了FT2232芯片实现usb到串口的转换。并设置在芯片的B通道上使用虚拟接口(VCP)。虚拟串行端口(VCP)与LM3s9b92上的UART0模块连接。在安装FTDI驱动程序后,windows会分配一个串行通信端口号到VCP通道,并允许windows应用程序(如超级终端)通过USB与LM3s9b92上的UART0进展通信。利用Windows超级终端调试UART的方法对于该开发板,使用的是USB虚拟的端口,无须使用DB9连接器。因此下面讲解一下如何利用Windows附带的超级终端来调试UART接口。 Windows附件里的“超级终端是个非常实用的应用程序,可以用来调试电脑的串行口,也能很好地支持通过USB虚拟的口。以下是超级终端配置端口的过程: 1 查看端口鼠标右击“我的电脑属性硬件设备管理器,打开后可以查看到电脑的端口和LPT情况,如图3.2所示。通常可以选用1或2以实际的硬件连接为准。对于开发板,要选用USB虚拟的接口Stellaris Virtual Port,请先记下所要采用的编号,在后续操作步骤里会用到。2 启动超级终端 鼠标点击“开始程序附件通讯超级终端,启动后的对话框如图3.3所示。3 配置过程 如图3.3所示,点击“取消。然后请参考图3.4图3.12进展配置。图3.2 查看设备管理器端口 图3.3 启动Windows超级终端图3.4 确认取消:是图3.5 超级终端:确定图3.6 连接描述:填写名称并选择自己喜欢的图标图3.7 位置信息:取消图3.8 确认取消:是图3.9 超级终端:确定图3.10 连接到:选择端口图3.11 属性配置图3.12 另存到桌面快捷方式最后一步是另存到桌面快捷方式,以方便下次直接使用。4 调试hello world例程如图3.13所示,为调试输出“hello world例程从UART0串口模块输出的结果。图3.13 hello world例程输出结果四、 实验要求采用超级终端作为外部输入与输出的接口,实现多位数的相加。即通过UART串口分别输入需要相加的多位数A与B,最后把A和B两个多位数相加的过程和结果,回显给用户。具体实现方法:既可以采用轮询的方式也可以应用中断。五、 实验步骤1、 连接实验设备:使用USB mini B线缆的mini端与开发板ICDI口相连,另一端接到PC机的USB插口上。2、 根据实验要求编写、调试、运行程序。并要求在代码上附上相关的注释。3、 书写实验报告,要求附上程序流程图。六、 实验心得比拟轮询方式与中断方式3.5基于LCD的数字式转盘手表一、 实验目的学会使用图形库二、 实验设备计算机、LM3S9B92开发板、USB A型公口转 Mini B型 5Pin 数据线1 条三、 实验原理TI Stellaris系列Cortex-M3系列MCU的方便强大,StellarisWare软件库提供的快速软件开发解决方案功丌可没。作为TI StellarisWare软件包的一局部,StellarisWare图形库(Grlib)提供了一套比拟完整的MCU图形显示方案,既可以进展根底的图形、文字绘制,也可以轻松实现PC机上常见的,基于消息的控件(Widget)。Stellaris图形库应用起来比拟简单,可以从Stellaris图形库的根本结构来学习。Stellaris图形库可以分为3个功能次层:显示驱动层、图形原型层和控件层。四、 实验要求应用stellarisWare图形库在开发板的彩色LCD上绘制一个转盘表如windows系统带的时钟表,要求能显示时、分、秒,并能够在设置时间的根底上,动态修改时间。五、 实验步骤1、 连接实验设备:使用USB mini B线缆的mini端与开发板ICDI口相连,另一端接到PC机的USB插口上。2、 根据实验要求编写、调试、运行程序。并要求在代码上附上相关的注释。3、 书写实验报告,并在报告描述设计思路,要求附上程序流程图。3.6 uc/os-移植一、 实验目的了解uC/OS-II核的主要结构;掌握将uC/OS-II核移植到Cortex-M3处理器上的根本方法二、 实验设备计算机、LM3S9B92开发板、USB A型公口转 Mini B型 5Pin 数据线1 条三、 实验原理所谓移植,指的是一个操作系统可以在某个微处理器或者微控制器上运行。虽然uC/OS-II 的大局部源代码是用C 语言写成的,仍需要用C 语言和汇编语言完成一些与处理器相关的代码。比如:uC/OS-II 在读写处理器、存放器时只能通过汇编语言来实现。因为uC/OS-II 在设计的时候就已经充分考虑了可移植性,所以,uC/OS-II 的移植还是比拟容易的。要使 uC/OS-II 可以正常工作,处理器必须满足以下要求:1.处理器的C 编译器能产生可重入代码。可重入的代码指的是一段代码如一个函数可以被多个任务同时调用,而不必担心会破坏数据。也就是说,可重入型函数在任何时候都可以被中断执行,过一段时间以后又可以继续运行,而不会因为在函数中断的时候被其他的任务重新调用,影响函数中的数据。下面的两个例子可以比拟可重入型函数和非可重入型函数:程序 1:可重入型函数程序 2:非可重入型函数程序 1 中使用的是局部变量temp作为变量。通常的C编译器,把局部变量分配在栈中。所以,屡次调用同一个函数,可以保证每次的temp 互不受影响。而程序2中temp定义的是全局变量,屡次调用函数的时候,必然受到影响。代码的可重入性是保证完成多任务的根底,除了在 C 程序中使用局部变量代码的可重入性是保证完成多任务的根底,除了在 C 程序中使用局部变量以外,还需要C编译器的支持。笔者使用的是keil realview mdk集成开发环境,均可以生成可重入的代码。2.在程序中可以打开或者关闭中断。在uC/OS-II中,可以通过OS_ENTER_CRITICAL()或者OS_EXIT_CRITICAL()宏来控制系统关闭或者打开中断。这需要处理器的支持,在Cortex-M3 的处理器上,可以设置相应的存放器来关闭或打开系统所有中断。3.处理器支持中断,并且能产生定时中断通常在10Hz100Hz 之间。uC/OS-II是通过处理器产生的定时器的中断来实现多任务之间的调度的。在Cortex-M3的处理器上可以产生定时中断。4.处理器支持能够容纳一定量数据的硬件堆栈。5.处理器有将堆栈指针和其他CPU 存放器存储和读出到堆栈或者存的指令。uC/OS-II进展任务调度的时候,会把当前任务的CPU存放器存放到此任务的堆栈中,然后,再从另一个任务的堆栈中恢复原来的工作存放器,继续运行另一个任务。所以,存放器的入栈和出栈是uC/OS-II多任务调度的根底。如下图说明了uC/OS的结构以与它与硬件的关系。应用程序软件UC/OS-II与处理器无关的代码OS_CORE.C OS_MEM.C OS_Q,COS_SEM.C uC/OS-II设置与应用相关的代码uC/OS-II移植与处理器相关的代码 软件 硬件CPU时钟图3-14 uCOS-II体系结构Cortex-M3处理器完全满足上述要求。接下来将介绍如何把uC/OS-II移植到TI公司的一款Cortex-M3的嵌入式处理器LM3S9B92上。四、 实验要求将uC/OS-II核移植到Cortex-M3
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!