不需要移植,在keil上打个勾就让stm32跑起操作系统

单片机相关 徐 自远 1308℃

来源: 不需要移植,在keil上打个勾就让stm32跑起操作系统 – 博客频道 – CSDN.NET

初识keil5,不得不说自动化配置的强大,建个新工程基本不需要各种粘贴复制文件夹,以前一直担心直接拷贝模板工程会同时拷贝很多垃圾文件,现在就完全不需要担心了。keil5的使用这里不赘述,这次的主题主要是仅仅使用keil软件就让STM32跑起操作系统,不需要所谓的移植。说起让MCU跑操作系统,总让新手望而生畏,让高手觉得没必要,浪费资源,其实如果给MCU添加操作系统就像添加一个GPIO外设一样简单,并且耗用资源极低,那么我想大家都很乐意享受RTOS带来的便利,清晰的思路。所幸,ARM公司意识到这点,正在keil5上做这个工作,相信ARM如果能坚持长期投入,会有越来越多的人关注。下面就借鉴ARM公司官方文档《CMSIS-RTOS教程》中的 一个小例子来感受下这种使用RTOS的便利性。

1、用keil新建工程。

在弹出的对话框里设置工程路径和名称,这里不赘述。

2、然后选择器件类型,这里选择STM32F103RB。如下图所示:

3、下面关键的一步来了,在选择完器件后RTE管理器就会弹出来,展开CMSIS, RTOS:

然后勾选keil RTX选项,这样你就用上了操作系统了,很简单,很随意大笑

不过这时候在RTE 管理器的下方会显示一个警告:

警告说缺少启动文件,不要紧张,有个粗暴的办法,点击下面的reslove按钮,轻松解决,可以看到RTE对话框都变成绿色,点击OK按钮:

RTOS就这样作为CMSIS的一个组件轻松添加到工程里面了:

上图绿色菱形的图标表示CMSIS的组件,带把钥匙的很显然表示只读不可编辑的。

RTOS添加完了,下面开始讲怎么跑起来。

4、添加main.c文件。

在弹出的对话框中选择最后一项 user code template ,右边栏展开CMSIS,选择第一项‘main function’,点击Add,如下:

5、添加线程thread.c文件。

稍微有点RTOS基础或者用VC++写过上位机的话应该对线程的概念并不陌生。每个线程执行一个任务,是使用OS的核心。

到此为止我们已经添加了两个源文件:main.c 和 thread.c。

6、双击打开thread.c文件。

在该文件中可以看到两个函数,Init_Thread()用来初始化线程,void Thread()就用来完成你所要执行的任务。有了操作系统,我们只需要专注于任务的编写,什么时候执行,怎么调用资源就交给操作系统了,听起来是不是很轻松。

7、再次打开main.c。只需要添加两行代码。

8、编译工程。

编译完工程,整个准备工作就算完成了,下面就让我们看看期待已久RTOS的运行效果。

9、使用keil仿真前配置。

右击target 1,选择属性,如下图:

切换到debugger 标签页,配置内容如下图红框内所示:(DARMSTM.DLL    -pSTM32F103RB)

点击ok,关闭对话框。

10、开始仿真。点击kei软件任务栏debug按钮,进入debug仿真模式。

打开system and thread viewer窗口:

11、全速运行!

可以看到RTOS中有3个线程在运行,是不是很直观大笑

转载请注明:徐自远的乱七八糟小站 » 不需要移植,在keil上打个勾就让stm32跑起操作系统

喜欢 (0)

苏ICP备18041234号-1 bei_an 苏公网安备 32021402001397号