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

        初识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个线程在运行,是不是很直观



你可能感兴趣的:(RTOS)