标签 μCOS 下的文章
美国Borland公司的经典产品BC3.1是一套应用于x86系列CPU平台支持C/C++及汇编编程的集成开发调试软件工具。美国的Borland公司是一家具有传奇色彩的软件开发公司。BC31是当时公司里一群世界顶尖高手的杰作,我们希望通过本文的介绍让用户能感受体验BC的快捷与高效、分享大师们的智慧,因为智慧比知识更有力量。本教程是基于BORLAND 3.1精简版,其实这个教程是在学习μCOS的时候写的,主要当时用到了BC3.1,所以写篇文章记录下。 注:BC3.1只能在Windows 32位系统中使用,这里是我提供的文件 点此下载 密码:qp99。假设BORLAND C++在C:\BC中,test.c在C:\UCOSII\EXP1中。BORLAND C++在C:\BC中,如下图:1、配置环境变量在“我的电脑”–“属性”–“高级”–“环境变量”,点击“环境变量”按钮:在系统变量中找到Path,再点“编辑”按钮:在打开的“编辑系统变量”对话框中,在变量值中增加“C:\BC\BIN”,并使用分号把它与环境变量中的其它各项隔开,这样环境变量就配置好了。2、编译test.c文件首先在test.c文件中编写一个程序并保存:然后打开“开始”->“所有程序”->“附件”->“命令提示符”或者在“运行”里面输入“cmd”:打开的窗口如下:输入“CD C:\UCOSII\EXP1”命令,按回车键,打开源文件所在的目录:输入命令“bcc –c –ml –Ic:\bc\include –Lc:bc\lib test.c”: 注意: ML IC 按回车键,对test.c文件进行编译:3、链接及运行输入命令“tlink c:\bc\lib\c0l.obj test.obj,test,test,c:\bc\lib\cl.lib”,注意: C0L(0:是数字0) CL按回车键后:输入“dir”,按回车键后,查看编译连接后的结果:输入“test”,按回车键后,执行程序:至此,就完成了对BORLAND 3.1简单使用的讲解。
相信大家使用STM32或者其他芯片的时候,绝大部分时间都是在写裸机程序,不过偶尔会写一些带系统的程序,那么问题来了,这个系统怎么选,又怎么移植呢?今天我给大家讲讲如何移植μCOS-II这个嵌入式系统到STM32下工作,为什么选μCOS-II,因为目前对它比较熟的嘛,而且也适合使用在像STM32这种处理器上。下面就是移植的过程,有图哟。关于移植过程中的一些基础知识,我想大家应该知道上网搜索学习吧。 在移植之前,先下载要用到的μCOS-II的官方移植版本。地址:点此下载 密码:euom。1、首先在Keil下建立STM32库函数工程如果还不会在Keil下建立STM32库函数工程,或者记不清了,可以参考我的博文:Keil下建立STM32库函数工程,这里有详细的说明,也是带图教程哦。2、在工程下,建立存放系统文件的目录在搭建好的工程下,建立一个UCOS-II的文件夹,然后在该文件夹下,再新建两个文件夹:SRC、PORT,效果如下:3、拷贝源码的相关文件到相应的目录注:UCOS-II\SRC下的代码是 ucosii 中无需修改部分,UCOS-II\PORT下的代码是移植时需要修改的。(1)、把Micrium\Software\uCOS-II\Source下的文件拷贝至Test\UCOS-II\SRC:(2)、把Micrium\Software\uCOS-II\Ports\arm-cortex-m3\Generic\IAR下的文件拷贝至 Test\UCOS-II\PORT,把Micrium\Software\EvalBoards\ST\STM32F103ZE-SK\IAR\OS-Probe-LCD下的os_cfg.h文件拷贝到Test\UCOS-II\PORT文件夹下:4、配置Keil工程(1)、在Keil下建立如下组,然后添加对应文件到组下:(2)、添加相应的头文件路径:5、修改移植时需要修改的文件(1)、os_cpu.h:注释掉os_cpu.h文件中下面的这三个函数:void OS_CPU_SysTickHandler(void); void OS_CPU_SysTickInit(void); INT32U OS_CPU_SysTickClkFreq(void);(2)、os_cpu_c.c:把下面这些宏定义也注释掉,把 OS_CPU_SysTickHandler(), OS_CPU_SysTickInit()也注释掉:(3)、os_cpu_a.asm:PUBLIC OS_CPU_SR_Save ; Functions declared in this filePUBLIC OS_CPU_SR_RestorePUBLIC OSStartHighRdyPUBLIC OSCtxSwPUBLIC OSIntCtxSwPUBLIC OS_CPU_PendSVHandler将以上的PUBLIC改为EXPORT,如下图:将RSEG CODE:CODE:NOROOT(2)修改为:;RSEG CODE:CODE:NOROOT(2)AREA |.text|, CODE, READONLY, ALIGN=2THUMBREQUIRE8PRESERVE8如下图:(4)、os_dbg.c:将该文件中的#define OS_COMPILER_OPT __root修改为:#define OS_COMPILER_OPT //__root,修改结果如下:(5)、startup_stm32f10x_hd.s:搜索startup_stm32f10x_hd.s中的PendSV_Handler,然后用OS_CPU_PendSVHandler把所有出现PendSV_Handler的地方替换掉,总共三个地方:(6)、os_cfg.h:对其做如下修改:#define OS_APP_HOOKS_EN 0#define OS_DEBUG_EN 0#define OS_EVENT_MULTI_EN 0#define OS_SCHED_LOCK_EN 0#define OS_TICK_STEP_EN 0#define OS_TASK_CHANGE_PRIO_EN 0#define OS_TASK_QUERY_EN 0#define OS_TASK_STAT_EN 0#define OS_TASK_STAT_STK_CHK_EN 0#define OS_TASK_SUSPEND_EN 0#define OS_FLAG_EN 0#define OS_MBOX_EN 0#define OS_TIME_DLY_RESUME_EN 0#define OS_TIME_GET_SET_EN 0#define OS_TIME_TICK_HOOK_EN 0#define OS_TMR_EN 0所做的修改主要是把一些功能给去掉,减少内核大小,也利于调试。等移植完成后,如果需要该功能,再做开启。(7)、stm32f10x_it.c:在该文件引用头文件:#include “ucos_ii.h”在void SysTick_Handler(void) 函数中添加如下代码:OSIntEnter();OSTimeTick();OSIntExit();(8)、ucos_ii.h:注释掉#include <app_cfg.h>:(9)、main.c:在main.c文件中引用ucos_ii.h文件:#include “ucos_ii.h”main.c文件中的代码如下:上述代码创建了两个任务,实现了PC6与PC7的IO口电平切换。仿真结果如下图:至此,在STM32上移植μCOS-II的工作就完成了,接下来,你就可以在这个工程下建立自己的应用程序。
- 1
本站信息
目前本站共被浏览 163883 次
目前本站已经运行 3535 天
目前本站共有 165 篇文章
目前本站共有 6 条评论信息
目前本站共有 104 个标签
目前本站共有 0 条留言信息
网站创建时间: 2015年03月01日
最近更新时间: 2023年11月26日
目前本站已经运行 3535 天
目前本站共有 165 篇文章
目前本站共有 6 条评论信息
目前本站共有 104 个标签
目前本站共有 0 条留言信息
网站创建时间: 2015年03月01日
最近更新时间: 2023年11月26日
JLink V9掉固件修复(灯不亮) 3Zephyr笔记2 - 在STM32F429上运行HelloWorld 2计算NandFlash要传入的行地址和列地址 1Linux MMC子系统 - 6.eMMC 5.1工作模式-设备识别模式 0Linux MMC子系统 - 5.eMMC 5.1工作模式-引导模式 0Linux MMC子系统 - 4.eMMC 5.1常用命令说明(2) 0
最新评论
标签云
Linux嵌入式实用技巧ARM内核学习问题集合CC++编程语言阅读笔记汇编Linux内核完全注释Windows驱动开发计算机基础ARM11ARMv7-ASTM32IDESublimeLinux内核学习eMMCMMC子系统Ubuntu操作系统OfficeVMWareAPUEgccRTOS中断漫游世界随笔感悟开发工具软件应用编程VsCodearmccarmclang编译器ZephyrSPIJLink网卡驱动安装各种芯片库函数NFSμCOS内核sambaFlashUnix命令与脚本输入法Linux内核设计与实现gitRIFFWAVJATGFTPar8161安装centos有线上网μCGUI字库工程建立右键菜单网络文件系统Firefox百度NTFS文件系统CodeBlocksCentOS数据结构算法PhotoShop51KeilQTUltraEditscanfglibc宏定义UIDGID优先级娱乐天地SourceInsight磁盘扇区总线I2CPDFBComparePythonI2SFPUMakefileSWDCPUARP软件推荐FileZilla