在KEIL下搭建基于 STM32 和 rt-thread 的开发环境

2020-01-13来源: eefocus关键字:KEIL下  STM32  rt-thread  开发环境

RT_thread开发人员是用MDK(Keil)进行开发管理的,当然也提供了IAR等开发环境的配置。针对初学者都提供了相关的教程和案例,不过项目开发,还是得讲究一下如何有效搭建开发环境和配置。


MDK(Keil)的安装和配置(破解)就略过了。能进行开发移植系统的程序员如果还不会最基础的开发环境搭建,那……去闭关修炼吧。


芯片选择:ST(意法半导体)-STM32F103ZE 

原因:


开发必备。大多单片机爱好者,学习过程基本是:菜鸟52->逐步深入stm32->深度中毒ARM。


ST芯片应用广泛。ST的性价比(点赞)和高性能在各领域都发挥着重要作用(好用吖)。

ST开发容易。固件库和资料都很全,网上大把教程和学习板(大学期间的零花钱都被那几家X宝店赚了。。。)。而且固件库具有通用性,熟悉了一个产品线的开发之后,比较容易能够切换到其它的产品线。


刚好手上有核心板,仿真器随便捡一个都能适应,呵呵


现在讲解一下项目开发过程

上RT_Thread官网,下载源码包,github主线有1.2.x、2.0.x和最新版本。浏览了各家说法后,我决定先去移植1.2.x版本,理由嘛,这货内容相对比较少,适合细细研究(主要是源码能大致看完和框架能更好的理解)。而且我的项目芯片的flash和RAM都比较小,剪裁一个稳定且小系统对我很重要。迟点再研究2.0.x也不迟,虽说框架不一样。


框架图 

RT_thread框架图

1.2.x源码-工程文件 

1.2.x源码-工程文件

bsp是放置各种芯片移植开发的配置文件。比如现在要开发STM32F103ZE芯片->对应目录是stm32f10x->目录里面包含应用层、驱动层和各开发环境的工程项目文件,初学者可以就此打开,并且研究其在移植开发中具体需要哪一些必需文件。(移植需要文件)


components是放置各种组件的。所谓组件,就是一些配套的,做好的应用,方便你使用。(我理解的意思)。里面的finsh组件很不错,一定要去涉及。(看需求移植,开发过程中最好配上finish)


documentation是,哦。


examples是一些关于rt_thread应用时一些API、编程、使用样例程序。还没细细研究过,仅供参考。


include是包含了RT-Thread内核头文件,移植的时候需要包含路径。(移植需要文件)


libcpu是存放各种内核文件,在移植中必需找到与自己芯片对应的内核文件。比如现在要开发STM32F103ZE芯片->对应arm目录下->cortex-m3内核。(移植需要文件)


src是RT-Thread内核源文件。(移植需要文件)


tools是支持各种集成开发环境的python文件,如常见的iar.py/keil.py/sconsui.py/vs2012.py(不会用)


自建开发工程目录 

Keil工程文件

App是放和应用有关的程序文件。


Board是放置和电路板设置有关的程序文件,比如,串口的管脚定义。这个目录里面文件的意义,是把固件库 & rt-thread 与 应用有关的程序文件隔离开来。个人认为,这一层的作用是很重要的,要好好规划。


Driver 目录。里面放置 rt-thread 提供的各种片上外设的驱动程序,需要从 rt-thread 的 bsp 子目录里面对应的芯片驱动中拷贝过来。之所以需要拷贝而非简单的引用,是因为这一层的驱动程序可能需要根据应用的需要做定制。


Fireware 目录。里面放置 ST 固件库所需的文件,比如 stm32f10x_conf.h。


RT-Thread 目录。里面放置 rt-thread 所需的配置文件,比如 rtconfig.h,组件,cpu内核,源代码文件等


ListingsOutput是keil编译输出文件

关键字:KEIL下  STM32  rt-thread  开发环境 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic485475.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM32的堆栈(Heap&Stack)空间
下一篇:STM32学习堆和栈(三)

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM32之keil MDK下建立第一个工程
一、使用固件库建立一个工程我打算先从软件编程学起,以前用过KEIL 和IAR,IAR我比较熟悉,因为参加电子设计竞赛的时候,就是用它编程MSP430程序的。但我还是选择了KEIL,也许因为资料比较多,或者别的吧,我没分析过KEIL 和IAR代码效率如何,因为这不是我现在要考虑的,软件都只是工具而已。我去百度搜索了几篇如何在KEIL MDK环境下建立STM32工程,加上自己的实践。我也把我的初学者步骤贴出来。1、了解STM32F103的固件库我在网上下了STM32F103的固件库-----stm32f10x_stdperiph_lib 3.5V版的,里面内容如图所示,据说STM32F103
发表于 2019-09-27
STM32之keil MDK下建立第一个工程
Keil MDK下如何设置非零初始化变量
       一些工控产品,当系统复位后(非上电复位),可能要求保持住复位前RAM中的数据,用来快速恢复现场,或者不至于因瞬间复位而重启现场设备。而keil mdk在默认情况下,任何形式的复位都会将RAM区的非初始化变量数据清零。如何设置非初始化数据变量不被零初始化,这是本篇文章所要探讨的。       在给出方法之前,先来了解一下代码和数据的存放规则、属性,以及复位后为何默认非初始化变量所在RAM都被初始化为零了呢。       什么是初始化数据变量,什么又是非初始化数据变量?(因为我的文字描述不一定
发表于 2019-08-01
【STM32】Keil中Debug模式下全局变量的实时查看
在使用Keil开发环境编写stm32程序时我们经常会用到硬件在线仿真的功能,能在watch窗口中看到我们在程序中定义的全局变量。我们希望在程序实时运行中看到变量的变化情况,但有时不能实时查看,原因是软件的设置不对。在Debug模式下,点击菜单栏下的View,在下面有一个Periodic Window update 点一下,选定一下就行了。
发表于 2019-07-31
在Keil V5下新建STM32F407工程
1、  建立工程目录新建一个工程目录,用来存放工程文件,源文件,头文件等,例如在桌面上新建一个名称为My_Project的目录。2、  建立工程子目录在步骤1建立的工程文件夹中建立子目录,用来存储工程中用到的不同文件。建立CMSIS、Library、Listing、Output、Project、User六个子目录,如下图所示。下面来讲一下这六个子目录的作用。CMSIS目录:用来存放和内核相关的文件Library目录:用来存放STM32F4 标准外设固件库源码文件和对应的头文件。Listing目录:用来存放列表文件。Output目录:用来存放编译过程中产生的中间文件。Project目录:用来存放工程文件。User
发表于 2019-07-25
在Keil V5下新建STM32F407工程
关于keil调试不能下断点的问题解决
原因其实很简单,keil默认设置的优化等级太高了!需要更改下即可 改成0后,任何地方就都能下断点了对了,改完之后不要忘记编译,完了之后才生效
发表于 2019-05-11
关于keil调试不能下断点的问题解决
开发STM32MP1,没有一块好的开发办怎么行
STM32MP1系列的出现吸引了很多STM32的新老用户的关注,但是很多的人都会担心一个问题:以前是基于Cortex M系列MCU惊醒开发,对于cortex-A架构的处理器以及Linux系统都不熟悉。如何高效地从MCU跨越到MPU是大家都关心的话题。 作为ST官方合作伙伴,米尔电子推出了开发套件MYD-YA157C,该套件由核心板MYC-YA157C和底板MYB-YA157C组成。该平台采用STM32MP157系列高性能处理器,提供了高性能显示,千兆以太网,WIFI/蓝牙,RS232/RS485/CAN等丰富接口。贴合应用场景的产品定义,稳定可靠的硬件设计,丰富的软件和学习资源,能帮助大家轻松实现跨越,是一块值得推荐
发表于 2020-01-09
开发STM32MP1,没有一块好的开发办怎么行
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved