打印

StellarisWare 例程简介

[复制链接]
4365|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lfzhou1006|  楼主 | 2011-10-7 14:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
StellarisWare 例程简介

AES Pre-expanded Key(aes_expanded_key)
       此例程演示了如何使用预扩展密钥加密明文并把它解密成原来的信息。使用预扩展密钥避免了在运行的时候处理扩展。采用的是AES中的CBC模式而不是更简单的ECB模式。
       该例程使用的AES表在Stellaris ROM中,所以是代码更小。
AES Normal Key(aes_set_key)
       此例程演示了如何设置一个加密密钥并用它来加密明文。然后设置解密密钥并把原来加密的块还原成明文。
该例程使用的AES表在Stellaris ROM中,所以是代码更小。
Bit-Banding(bitband)
       此例程演示了如何在Cortex—M3微处理器上对位带区进行操作。所有的SRAM和内部外设都在位带区,这就意味着位带区的操作可以应用到它们中的任何一个。在此例程,SRAM中的一个变量通过位带操作每次改变一个位而被设置成不同的值(这将比没有位带操作时更有效率,这只是简单的演示了位带区的操作)。
Blinky(blinky)
       使板上的LED闪烁。
Boot Loader Demo1(boot_demo1)
       此例程演示基于flash的bootloader的使用。在启动时,应用程序将配置UART、USB和以太网外设,然后跳转到bootloader等待升级的启动。如果使用串口升级,UART波特率将被配置为115200,并关闭自动波特率。
       此例程可以被三种基于flash的bootloader使用。为了适应着三者中最大的usb bootloader,链接地址被设置成0x1800。如果你使用的是串口bootloader或者以太网bootloader,你可以把此值修改为1KB,方法是在bl_comfig.h中修改APP_START_ADDRESS的值,然后重新编译即可。
       Boot_demo2例程可以与此例程配合证明bootloader事实更新了片上Flash。
       注:LM3S9B96或者其它硅版本是B1或更新的Tempest-class Stellaris芯片支持在ROM中固化串口和以太网bootloader。要使用这种功能,链接你的应用程序在Flash中的地址为0x0000并使用ROM_UpdateEthernet或者ROM_UpdataSerial函数。
Boot Loader Demo2(boot_demo2)
       此例程演示基于flash的bootloader的使用。同上。
Ethernet Boot Loader Demo(boot_demo_eth)
       此例程演示基于flash的以太网bootloader通过远程升级信号的使用。此例程配置以太网控制器,获取一个IP地址并与MAC地址一起显示屏幕上。然后它监听magic packet传达固件升级请求,当这个包被收到之后,把控制权交给bootloader并处理升级。
       尽管在此例程发布的时候已经有了三种基于flash的升级方式,但此例程只能通过以太网升级的方式,因为触发进入到bootloader的magic packet只能通过以太网发送。
       Boot_demo1和boot_demo2例程不能使用以太网magic packet,可以与此例程一起简单地证明bootloader事实上升级了片上flash。
Ethernet Boot Loader(boot_eth)
       Bootloader是被下载到flash起始位置的一小段程序,起到应用程序的载入或者在Stellaris MCU上利用UART0.、I2C0、SSI0或以太网升级的一种机制。Bootloader的配置都是通过bl_config.h文件。
       配置设置应用程序的地址是0x1800。比实际需要的要多,这样是为了同时兼容其他的升级方式而未作调整。
Ethernet Boot Loader for External Flash(boot_eth_ext)
       此例程使用以太网把应用程序载入到外部Flash并开始运行。在此例程中,Bootloader是在内部flash中运行的唯一应用程序。
       配置设置应用程序的地址是0x60000000(EPI连接外部Flash)开始。
Boot Loader(boot_serial)
       此例程是通过串口升级的bootloader。
USBBootLoader(boot_usb)
       此例程是同过USB升级的bootloader。
Calibration for the Touch Screen(calibrate)
       触摸屏原始采样接口被用来计算把原始采样换算成屏幕X/Y位置的校验矩阵。产生的校验矩阵能够被插入到触摸屏的驱动程序中来映射原始采样到屏幕坐标。
       触摸屏校验采用的是Carlos E. Videles 2002年6月发表在Embedded Systems Design期刊上的算法。
Ethernet-based I/O Control(enet_io)
       此例程演示了用Stellaris 以太网控制器并采用lwIP协议栈基于web的I/O控制.使用DHCP来获取一个IP地址。如果DHCP未获得地址超时则使用AUTOIP获取一个静态的IP地址。已选择的IP地址将会被显示出来,并且可以使用普通的浏览器访问。
       在应用的主页的左边有一个导航菜单,通过页面标签“IO Control Demo 1”和“IO Control Demo 2”展示了两种不同的控制板上外设的方法。可以控制LED的状态和设置卡通图像的速度。
       “IO Control Demo 1”使用 运行在浏览器的JavaScript来发送HTTP请求获取特殊的URLs。
       “IO Control Demo 2 ”使用HTML表单来传递参数给运行在板上的CGI处理程序。这些处理程序按要求处理这些数据并控制LED状态,然后返回一个页面到浏览器。
       在第二个演示例程中,在返回的页面中使用SSI标签,这些标签在返回浏览器之前被HTTPD服务器先解析。
Ethernet with lwIP(enet_lwip)
       此例程演示了在Stellaris以太网控制器上移植lwIP TCP/IP协议栈。
       文件系统的代码首先会检查microSD插座中是否插入了SD卡,如果有,则所有的web服务器请求的页面都将在SD Card中读取;否则,内部文件系统将被使用。
Ethernet with uIP(enet_uip)
       此例程演示了在Stellaris以太网控制器上移植uIP TCP/IP协议栈。使用DHCP来获取一个IP地址。一个简单的网站通过以太网口服务并且会记录发送页面的次数。
GPIO JTAG Recovery(gpio_jtag)
       此例程演示了把JTAG引脚转变为GPIO脚,然后通过一种机制又将它们转变为JTAG。
在第一执行的时候,这些引脚是JTAG模式。通过触摸屏可以在两种模式之间转换。
Graphics Library Demonstration(grlib_demo)
       此例程演示Stellaris 图形库的功能。一系列的面板展示图形库的不同特征。
Hello World (hello)
       非常简单的“hello world”例程。这个例程采用图形库最原始的函数来更新显示。
Hello using Widgets(hello_widget)
       非常简单的使用Stellaris 图形库widgets创建的“hello world”例程。这是一个基于widget的更复杂应用的起点。
I2S example applicationusing SD Card FAT file system (i2s_demo)
       此例程演示从FAT格式的SD卡上读取一个wav格式的文件并播放。此例程只能进入到SD卡的根目录并显示根目录的所有文件。只有PCM格式(未压缩的)文件才可能被播放。
I2S Record and Playback(i2s_filter)
       此例程演示了从编解码器的ADC记录音频,并通过I2S的接受接口传送到微控制器,然后同I2S的发送接口再传回到编解码器。一个线电平的音源插入到LINE IN插座,然后从HEADPHONE和LINE OUT插座播放。需要更改某些默认的跳冒。
Interrupts(interrupts)
       此例程演示了Cortex-M3内核和NVIC在中断抢占和尾链机制上的功能。当优先级提高时,抢占中断就会产生。当优先级相同或者降低时,尾链机制会发挥作用。当前正在挂起或者执行的中断将在屏幕上显示出来。
Graphics Library String Table Demonstration (lang_demo)
       此例程演示了Stellaris图形库的字符串表函数。本例程通过右下角的按钮在两个面板之间切换,在第二个面板可以设置显示文字的语言。
MPU(mpu_fault)
       此例程演示使用MPU保护内存的一片区域以禁止访问,当访问违规的时候产生一个内存管理异常。
USB OTG HID Mouse Example(otg_detect)
       此例程演示了USB主机和设备使用USB OTG 操作。当评估板连接到一个USB主机,它将被视作与BIOS兼容的USB鼠标。如果一个USB鼠标连接到了USB OTG端口,此时评估板作为一个USB主机,当鼠标移动的时候在显示屏上画点,而且鼠标按键的三种状态将显示在显示屏的右下角。
Quickstart Checkout Application(qs-checkout)
       此例程基于widget的应用演示了评估板上的多个外设。
1.    USB鼠标支持。同上例程类似功能。
2.    TFTP 服务器。此服务器可以通过远程的以太网连接可以对1MB的串行Flash设备进行读写操作。在串行Flash中的图片将在启动时复制到SDRAM被外部的Web服务器文件系统使用。合适的图像可以通过使用makefsfile工具附加-b和-h选项来生成。上传一个图片到串行flash,使用TFTP命令行:tftp –i <board的IP地址>  PUT <二进制文件 > eeprom.从串行flash中读取图片使用TFTP命令行:tftp –I <board的IP地址> GET eeprom <二进制文件>。读写扩展板上的Flash/Flash/LCD中的图片使用同上的命令,不过要将eeprom使用exflash来代替。
3.    Web服务器。使用lwIP TCP/IP协议栈实现的web服务器可以从一个内部的文件系统、FAT 格式的SD卡或U盘或者在初始化时被复制到SDRAM的存储在串行Flash中的文件系统镜像。这些文件系统可以通过web浏览器使用URL:http://<boardIP地址>,http://<board IP>/sdcard/<filename>,http://<board IP>/usb/<filename>和http://<board ID>/ram/<filename>,其中board IP是点十形式的IP地址。注:只有在根目录下才会打开默认文件名,在其它目录下请使用绝对路径。
4.    触摸屏。只要屏被按压则当前触点的坐标就被显示出来。
5.    LED控制。一个GUI接口允许用户控制板上的LED。
6.    串行命令行。通过UART0实现了一个简单的命令行。超级终端设置115200/8/N/1,输入help可以获得帮助信息。
7.    JPEG图片浏览。使用Web服务的外部文件系统的images文件夹内图片可以被浏览。
8.    音频播放。存储在SD卡或者U盘的未压缩的wav格式文件有可能被播放通过耳机接口。可用的WAVE音频文件被列出在左边。可以调节音量。
Safe RTOS Example(safertos_demo)
       此例程演示了利用SafeRTOS在并发形式下执行多个任务。以下任务被创建:
1.  lwIP任务,通过以太网接口提供网页服务。这实际上是两个任务,一个是运行lwIP协议栈,一个是处理最原始包的发送和接受。
2.  LED任务,以用户可设置的频率闪烁,通过web来设置。
3.  一个蜘蛛任务组,每一个任务控制一个蜘蛛在LCD上爬行。爬行的速度可以通过Web来进行设置。多大32个蜘蛛任务可并发运行(应用实施的极限)。
4.  一个蜘蛛控制任务。可以通过触摸屏创建一个蜘蛛任务或者终止一个。
5.  这里还有一个自动创建的空闲任务,此任务监视评估板的IP地址是否发生改变并通过串口把变化告诉用户。
在底部有几个状态显示项目:应用程序运行总时间,运行的任务总数,board的IP地址,以太网接收和发送的包数目。
Scribble Pad(scribble)
       涂鸦板例程在屏幕上提供一个画板,可以选择7中颜色。
SD card using FAT file system(sd_card)
       此例程演示从SD卡上读取文件系统。采用FAT文件系统驱动的FatFS,提供基于widget的操作和基于串口的命令行两种方式查看操作SD卡上的文件系统。
       可以在超级终端下键入help获取帮助信息。
JPEG Image Decompression(showjpeg)
       此例程将与应用程序相联系的JPEG图片解压并显示在320*240的显示屏上。外部的RAM被用来存储图片和解压空间。图片可以在触摸屏上拖动。
       JPEG的解压和显示是通过通用图形库widget来处理的,可以在drivers/jpgwidget.c找到。
       本例程采用的JPEG库参考http://www.ijg.org/.
Timer (timers)
       此例程演示使用定时器产生周期中断。一个定时器被设置成一秒种触发一次中断,另一个一秒钟触发两次。每隔中断处理都会在现实屏上翻转指示状态。
UART(uart_echo)
       此例程利用UART回显信息。
uDMA (udma_demo)
       此例程演示利用uDMA控制器在内存缓冲区之间传递数据和从UART收发数据。测试执行10s后退出。
USB Audio Device(usb_dev_audio)
       此例程使评估板上作为一个支持48KHz的立体声16位音频流的USB音频设备。此例程同样支持音量控制、静音设置并应用到音响驱动。不过,这只会改变耳机的大小,而不改变LINE OUT的大小,因为此板的音频ADC只支持耳机接口的音量改变。
USB Generic Bulk Device(usb_dev_bulk)
       此例程提供以从USB主机输入和输出块数据的通用USB设备演示。从主机接收到的数据被认为是ASCII文本并以字符型回显。
USB HID Keyboard Device(usb_dev_keyboard)
       此例程中评估板可作为一个支持人机接口的USB键盘。在彩色LCD触摸屏上的虚拟键盘将会把相应的键代码发送到USB主机。Shift、Ctrl和Alt键的用法与实际键盘稍有不同。
板上的LED状态灯指示Caps的状态,包括其它键盘上的Caps敲击后的状态。
USB HID Mouse Device(usb_dev_mouse)
       此例程中评估板可作为一个支持人机接口的USB鼠标。可以在触摸屏上相应区域滑动来控制鼠标,这些输入通过向主机发送HID报告来达到让评估板控制主机鼠标的目的。
USB MSC Device(usb_dev_msc)
       此例程中开发板可作为一个USB大容量存储设备。使用SD卡作为大容量存储媒介。显示屏上将显示从失去连接、没有媒体、正在读数据、正在写数据和空闲等状态。
USB Serial Device(usb_dev_serial)
       此例程中开发板当连接到USB主机的时候可作为一个虚拟的串口。此例程支持USB通信、UART0的绝对控制在USB主机上的数据输入和输出。在window2000系统上Usb_dev_serial_win2k.inf需要被安装使此例程作为一个虚拟的串口,winXP,Vista则需安装usb_dev_serial.inf.
USB HID Keyboard Host(usb_host_keyboard)
       此例程演示评估板支持USB键盘的连接。如果键盘已连接到评估板上将在显示屏的底部显示连接状态和Caps的状态。敲击键盘上的按键将被显示在屏幕上并通过串口发送出去。任何支持USB HID BIOS协议的键盘应该都可以在此例程上工作。
USB Mass Storage Class Host Example(usb_host_msc)
       此例程演示从U盘读取一个文件。采用的是FatFs。同样同时提供基于Widget和UART两种方式的控制窗口。
USB Stick Update Demo(usb_stick_demo)
       此例程演示使用基于Flash的U盘升级程序,通过在评估中运行的usb_stick_update升级程序载入存储在U盘中文件最后运行。
       当这个文件被编译后,重命名为usb_stick_update除外的名字,默认是firmware.bin.屏幕上会提示用户按选择按钮,一旦按了选择按钮,就会执行仍在flash里边的升级程序,准备升级另一个程序。
USB Memory Stick Updater(usb_stick_update)
       此例程是实现和bootloader相似的功能。在flash的开始出,会从U盘读取一个二进制文件并把它烧写到另一片flash区域。一旦用户程序被烧写进flash,此程序将从用户程序开始执行直到新的升级被请求。
       当此例程启动时,如果在APP_START_ADDRESS已经存在一个应用例程,那么将只会运行用户例程。只有在出现以下几种情况的时候才会从U盘中上载新的用户程序:
1.    在APP_START_ADDRESS处没有用户程序
2.    用户程序通过把控制权交个升级程序请求升级
3.    当评估板复位的时候,用户按住了push按钮
当此程序试图升级的时候,它会一直等待直到U盘插入。如果找到U盘,它会在根目录中寻找特殊的文件名(默认是FIRMWARE.BIN),这应该是一个您想载入的二进制文件,并在APP_START_ADDRESS处被正确连接的。
       U盘必须被格式化为FAT 16或者FAT32文件系统,而且二进制文件必须在根目录下。U盘其它文件会被忽略。
Watchdog(watchdog)
       此例程演示了看门狗一个简单的示例。如果看门狗没有周期性喂狗,将复位系统。每当每秒一次的喂狗后,LED灯将翻转,所以很容易就能看到。

相关帖子

沙发
sqcumt123| | 2011-10-9 14:25 | 只看该作者
楼主好辛苦啊,帮楼主顶一个,顶顶顶

使用特权

评论回复
板凳
lfjwfm| | 2011-10-16 12:14 | 只看该作者
多谢多谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

340

帖子

1

粉丝