这个版本更新有些多,RT-Thread/STM32F103VB 0.3.0 beta3更改记录: - 内核,添加IAR EWARM 5.x工程,在内核定义中做相应的平台定义; - 添加文件系统组件DFS,DFS是一套虚拟文件系统(类似Linux的VFS,但几乎不占用空间) - 添加文件系统DFS-EFSL:把著名的FAT文件系统实现EFSL引入到DFS中,同时对它的不足进行修改:重写文件系统缓冲层;添加多扇区读写支持。(我们自己实现的DFS-FAT还在进行压力测试中,测试完毕后也会放出) - STM32固件库更新到2.0.3patch1
RT-Thread/STM32F103VB 0.3.0 beta2更改记录: - 修正message queue创建时内存分配的问题。 - 修正pendsv异常优先级过高的问题。 - 更改rt_console_puts为rt_hw_console_output,并由各个board自行实现,如果设置rt_hw_console_output为空函数,那么rt_kprintf将自动不起作用。 - 设备驱动框架中添加两个回调函数,设置回调函数的接口为: * rt_device_set_rx_indicate,rx_indicate回调函数在设备驱动收到数据时调用,以通知上层应用有多少字节大小的数据已经接收(上层应用此时可以主动调用rt_device_read进行接收)。 * rt_device_set_tx_complete,tx_complete回调函数在驱动设备完成数据写入时调用,以通知上层应用数据已经写入完成(如果数据是动态申请的,可以在此时释放)。 设备驱动框架内部相关调用实现: * rt_device_open/close,如果驱动设备是DMA接收模式,那么调用open将打开DMA开始进行接收,close则关闭DMA。 * rt_device_read,设备驱动从设备中读取(轮询模式),或从已经接收到的buffer中读取(接收中断模式、DMA接收模式) * rt_device_write,设备驱动往设备中写入数据(轮询模式),或挂接到链表中,等待DMA传输完成(如果当前DMA没使能,那么使能DMA直接进行发送)。 - STM32串口设备,实现在libcpustm32serial.c中,发送支持轮询,DMA发送;接收支持轮询,中断接收,DMA接收等方式。 * 串口设备的注册在bspstm32f103vbusart.c中,当前默认注册为 + uart1, 轮询发送,中断接收, 中断接收通知指向finsh,rt_hw_console_output则轮询发送(不产生中断)。 + uart2, DMA接收,轮询发送 + uart3, 中断接收,DMA发送 - bspstm32f103vbapplication.c是几个串口设备的使用例子。
简而言之,RT-Thread/STM32F103VB 0.3.0 beta3是一个RTOS + Shell(finsh) + VFS(DFS + EFSL(FAT16/32)),并且文件系统已在万利STM32开发板SPI SDCard上验证通过(大范围的SD/MMC卡还有待验证)。
有用的链接: RT-Thread官方网站:http://www.rt-thread.org RT-Thread官方论坛:http://www.rt-thread.org/phpbb/ 内核API在线文档:http://www.rt-thread.org/rt-thread/rttdoc_0_2_3 RT-Thread编程指南(未完成):http://www.rt-thread.org/phpbb/viewtopic.php?f=2&t=195
到目前为止,不管您是使用RealView MDK还是IAR EWARM,您都可以尝试使用RT-Thread。后续我们会进行IAR EWARM集成开发环境插件的尝试,有思路的大虾还请给出您宝贵的建议。 相关链接:http://www.rt-thread.org |