不需要移植,在keil上打个勾就让stm32跑起操作系统
2017-02-11 13:17
411 查看
http://blog.csdn.net/ichamber/article/details/53113195
初识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个线程在运行,是不是很直观
初识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跑起操作系统
- ucos实时操作系统学习笔记——操作系统在STM32的移植
- UCGUI在STM32平台移植经验(无操作系统)
- 实时操作系统ucos ii 2.92在stm32上的使用 (二):移植文件
- 【STM32】keil环境下移植cJSON
- 基于keil的contiki系统的stm32移植
- UCGUI在STM32平台移植经验(无操作系统)
- 【学习笔记】在KEIL中stm32移植51代码时位定义变量的替换
- UCGUI在STM32平台移植经验(无操作系统)
- STM32移植LWIP验证DNS功能
- Hello China操作系统STM32移植指南(二)
- 移植操作系统的对微处理器的要求
- 手把手教你在MDK编译环境下移植基于STM32的UCOSII嵌入式系统
- 【物联网智能网关-16】成功移植SQLite(STM32 .NET MF平台)
- stm32移植ecos,ecos sd driver,SD卡驱动
- STM32移植fatfs(R0.10a版本)
- STM32工程不同系列芯片间的移植
- STM32 USB虚拟串口移植参考
- stm32 SD卡 SPI驱动以及fatfs移植
- MINA源码分析---可移植的操作系统分界符(换行符)