自从入坑STM32,便一发不可收拾,从裸机开始,学习了uCos,但这个RTOS只是入坑RTOS的垫脚石,实际工作中用的是FreeRTOS,免费的吗,必须选它了,虽然最开始接触FreeRTOS感觉好难,代码风格不是我喜欢的类型一脸茫然,之后开窍了,干嘛非得看源码,会用就行,通过不断的玩耍,逐渐深入认识了FreeRTOS,现在看来,看看源码也能看懂用的是如鱼得水,爱不释手,手上有板子就要拿来跑一下。 之后又偶遇rt-thread,只知道这个是国人写的,简单了解了一下,有点linux的风格,借鉴了一下设备驱动框架,拿来自己用了一下。其实自己一行是想入坑linux驱动开发,看了基本书了,开发板搞了两块,进展太慢,总是搁置,看完了书,照着实验也做了一下,之后有迷茫了,没办法,老是迷失方向。想一想这么大一个系统哪有那么容易学,慢慢用,多做实验吧,现在还在默默的看书。在这期间也想试着用一下rt-thread,但是资料就官网上的那几篇,而且移植还需要调整目录接口,平台是mdk,但是我有个毛病,管理代码不喜欢更改代码的目录接口,就那ST的库来说,基本就是整个Drivers复制过来,直接加入工程,好处就是这种代码库后期方便升级,而且越来越不喜欢用mdk这样的软件来写代码,更倾向于免费的 工具gcc,makefile,cmake等来开发,虽然现在调试主要还是用IAR,所以,又扔一边了,中间也有一次成功在stm32f767-nucleo上跑起来,也就是跑了一下串口。发现rt-thread的官网和论坛最近比较活跃,所以又折腾了一下,在stm32f412-nucleo上跑起来了,这次算是足足的被吸引了,就在刚刚,一个新的工具env,成功运行这个工具并编译成功,这个用起来确实方便,有packages管理功能,用menuconfig进行配置,再加上gcc来开发代码,很好很好,我想我要从FreeRTOS逐渐迁移到rt-thread上。贴两张图,我不是打广告的,只是感觉不错,分享一下,顺便晒晒板卡。 如何适配F412 首先在bsp目录先建一个目录,用来适配自己的板卡 一、建立applications,drivers,libraries三个目录,并从其他bsp从其他板卡(有f4的板卡)文件夹中复制rtconfig.h,rtconfig.py,SConscript,SConstruct,stm32_rom.ld这几个文件,可以参考官网的env使用说明,需要Kconfig这个文件,env这个工具使用起来确实很方便。这里不使用env工具。参考已有的f4的板卡,Libraries中存放stm32f4的库,有两个文件夹,分别是CMSIS,STM32F4xx_HAL_Driver,把applications,drivers,Libraries目录中的SConscript复制过来。 以下是目录结构 bsp |----stm32f412-nucleo |----applications |----drivers |----Libraries |----CMSIS |----STM32F4xx_HAL_Driver CMSIS和STM32F4xx_HAL_Driver是直接从ST的库中复制过来的,这里就不展开目录结构了。 二、需要修改的文件 1、rtconfig.py
rtconfig.h见附件,我的这个文件是env生成的,这个只是一些宏。注意不要使用RT_USING_USER_MAIN,这个宏打开后,kernel的初始化工作都是由kernel自动完成的,但是经过测试并不能成功运行,主要是入口函数的问题,关掉这个,从main入口开始需要调用kernel的初始化相关的代码。 二、CMSIS文件夹下的SConscript需要修改,以适配F4
Libraries中的文件未上传,库太大 |
stm32f412-nucleo.zip
下载1.22 MB, 下载次数: 27, 下载积分: ST金币 -1
目前出了什么子官方板子外,其他板子很少见到过能支持openocd的
评分
查看全部评分
我转战linux,是学习linux设备驱动开发,不是STM32,而且目前我调试都是用串口很少用调试器来调试
论坛的坛友的帖子不错https://www.stmcu.org.cn/module/forum/thread-603753-1-1.html
比较容易上手,深入了解的话,还是需要看一些书籍,gcc多在网上找找吧,我都是边用边学,现在还是菜鸟,就会那几条命令
how to write Makefile.pdf
2018-4-28 09:30 上传
点击文件名下载附件
下载积分: ST金币 -1384.18 KB, 下载次数: 32, 下载积分: ST金币 -1
openocd除了给官方MCU的开发板适配了config文件外,其实主要还是target和interface这两个,目前基本除了最最最最新的MCU等待更新外,其他90%的MCU内核均被支持,毕竟openocd不是商业性的,更新没有MDK那些这么快!
评分
查看全部评分
我是使用 Jlink调试下载,debug用的jlink 的GDBserver
评分
查看全部评分
非常感谢。
还没在STM32上用过GDB,后面尝试一下
有个项目叫GNU MCU Eclipse,Eclipse的插件,Jlink支持很简单,ST-Link需要指定一下ST开发板的配置文件,也不难
评分
查看全部评分