完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
有个小项目,用什么MCU无所谓,所以我想试试已经1年多没用的STM32,这么长时间没关注她,竟然多出来那么多系列,我还是使用103系列,这次我用的是STM32F103VCT6,主要是因为她有DAC,我需要,还因为她有USB,虽然我的小项目目前没有用到,但我想以后扩展功能,需要用到,再加上她不到20元,这么便宜,我不用都感觉自己吃亏了。。。 FreeRTOS官网上有STM32的移植,但固件库的版本太低了,竟然没有DAC的固件库,而且新老版本固件兼容性不是很好,我在想是把固件库移植到FreeRTOS的例程上,还是把FreeRTOS移植到固件库的例程上,为此我内心挣扎了好久,再加上我是个OS新手,uCOS才用了不到1年,此前我尝试过把uCos-III、RTT等移植到最新的固件库上,但都未果,为啥未果,我也来说道说道。。。 uCOS-III的官方移植是基于107的,我用的是103,我着手改动,发现丫的竟然把STM32的固件库给改了一部分,这加深了我往103移植的难度和风险,因为我不能把全部代码看完,以确定他哪些改了哪些没改,而且他改了以后,固件库对各个CPU的兼容性支持较差,本来定义一个宏,就可以支持不同型号的STM32,所以放弃。。。 后来考虑过RTT,听说这是国产的,想支持下国货,由于我现在这个小项目不是正式产品,我可以随意使用我喜欢的OS,稳定性什么的不是很重要(呃。。。不要怀疑,是这样的)而且中文资料比较全,但文档看了一半开始退缩了,他开始跟我讲面向对象,讲C++的好处,我看了一年的VC都没学会,我这么笨的人,这么缺乏面向对象概念的人,怎么可能学会一个用C++思想的OS,所以放弃。。 终于可以进入正题了,需要准备两个东西,一个是STM32固件库V3.5.0,另一个是FreeRTOS源代码V7.0.2,都是目前最新版的,我加入了链接,如果你是转发我的文章,可能这个链接就没了,所以转发注明出处 解压固件库,目录“..STM32F10x_StdPeriph_Lib_V3.5.0ProjectSTM32F10x_StdPeriph_TemplateMDK-ARM” 下打开工程文件,由于我用的是STM32F03VCT6,所以选择“STM3210E-EVAL”,同时打开解压FreeRTOS,打开关于103的例程keil版本,在这个目录下“..FreeRTOSv7.0.2FreeRTOSv7.0.2DemoCORTEX_STM32F103_Keil” 这个是以VCT6为例移植,其他型号一样 1、 参照FreeRtos中的STM32F10x.s修改startup_stm32f10x_hd.s(我用的是103VCT6所以选择这个文件,用其他CPU用其他启动文件) 添加: 1 IMPORT xPortPendSVHandler2 IMPORT xPortSystickHandler3 IMPORT vPortSVCHandler4 //IMPORT vUARTInterruptHandler5 //IMPORT vTimer2IntHandler后两个不要添加,因为这不是FreeRTOS核心代码,是他demo用到的,我们不需要 对应后面的中断入口地址需要更改
两者还有一点小小的不同是复位时进入main函数之前的那段代码,新版本固件库的启动代码中,在进入main()函数之前执行函数SystemInit()初始化了时钟,这个根据目标板不同,注意此段代码 2、把..FreeRTOSv7.0.2 文件夹下的Source文件夹复制到..STM32F10x_StdPeriph_Lib_V3.5.0Libraries 并重命名为FreeRTOS 3、FreeRTOSConfig.h复制到“..STM32F10x_StdPeriph_Lib_V3.5.0UtilitiesSTM32_EVALSTM3210E_EVAL”下 4、参照FreeRTOS例程在STM32的固件库例程中加入组FreeRTOS,并加入文件,我截个图吧 5、当然,在Keil里该包含的文件要包含,也截图吧 就这么简单,呃。。。我应该没落下什么东西吧。。。把原来的main函数修改一下,执行我的代码,我的任务已经可以调度了 补充一句,我很喜欢FreeRTOS变量和函数的命名风格 本来想把我改的工程传上来,这附件怎么限制2M啊。。。固件库好几十兆,我这样看能看懂吧 文章有不对的地方请留言,也可以email我arm-cortex#qq.com 转载请注明出处。。。来自青岛小庄。。。2011.11.28。。。。arm-cortex#qq.com |
|
相关推荐
4 个讨论
|
|
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
1107 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1055 浏览 2 评论
2159 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1253 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1678 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 16:12 , Processed in 0.771672 second(s), Total 57, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号