您当前的位置:首页 > 技术风向标

μCOSII在基于Cortex-M3核的ARM处理器上的移植

时间:2015-03-30  来源:扁平线圈电感厂家  点击:
目前,嵌入式技术已被广泛应用到汽车电子、无线通信、数码产品等各个领域。嵌入式操作系统及嵌入式处理器技术发展迅猛,嵌入式操作系统典型代表有μCOS—II、μClinux、Winclow CE、VxWorks等;嵌入式处理器包括ARM、MIPS、PowerPC等。随着软硬件技术的发展,人们开始意识到基于嵌入式操作系统的程序开发模式的便利性及可靠性,并且在程序开发过程中开始倾向于从传统超循环开发模式转向基于嵌入式操作系统的开发模式。

1 软硬件开发环境及处理器介绍
1.1 软件硬开发环境
本移植过程使用的软件环境是RealView MDK开发套件,此产品是ARM公司最新推出的针对各种嵌入式处理器的软件开发工具,该开发套件功能强大,包括了μVision3集成开发环境和RealView编译器。使用的硬件平台是深圳电感器的识别英蓓特公司推出的全功能评估板STMl03V100,其上所采用的处理器是ST意法半导体公司生产的32位哈佛结构ARM处理器STM32F103VBT6,该处理器内置ARM公司最新的Cortex—M3核,并且具有非常丰富的片上资源。
1.2 关于基于Cortex-M3的ARM处理器的介绍
基于Cortex—M3核的ARM处理器支持两种模式,分别称为线程模式和处理模式。程序可以在系统复位时或中断返回时两种情况下进入线程模式,而处理模式只能通过中断或异常的方式来进入。处于线程模式中代码可以分别运行在特权方式下和非特权方式下。处于处理模式中的代码总是运行在特权方式下。运行在特权方式下的代码对系统资源具有完全访问贴片电感器权,而运行在非贴片电感特权方式下的代码对系统资源的访问权受到一定限制。处理器可以运行在Thumb状态或Debug状态。在指令流正常执行期间,处理器处于Thumb状态。当进行程序调试时,指令流可以暂停执行,这时处理器处于Debug状态。处理器有两个独立的堆栈指针,分别称为MSP和PSP。系统复位时总是处于线程模式的特权方式下,并且默认使用的堆栈指针是MSP。本移植过程中假设任务总是运行在线程模式的特权方式下且总是使用堆栈指针PSP。

2 移植过程详解
2.1 μCOS-I插件电感I内核介绍

μCOS—II是一个实时可剥夺型操作系统内核,该操一体成型电感作系统支持最多64个任务,但每个任务的优先级必须互不相同,优先级号小的任务比优先级号大的任务具有更高的优先级,并且该操作系统总是调度优先级最高的就绪态任务运行。此内核的代码是美国人Jean J.Labrosse用C语言编写的,具有很好的可移植性,其2.52版本通过了美国航天航空管理局的安全认证,可靠性非常高。文中所述的移植过程使用的就是该版本的源代码。
2.2 开始移植
μCOS—II v2.52的源代码按照移植要求分为需要修改部分和不需要修改部分。其中需要修改源代码的文件包括头文件OS_CPU.H、C语言文件OS_CPU.C以及汇编格式文件OS_CPU_A.ASM。
2.2.1 修改头文件OS_CPU.H
头文件OS_CPU.H中需要修改的内容有与编译器相关的数据类型重定义部分和与处理器相关的少量代码。由于本移植过程中使用的是RealView编译器,因此通过查阅此编译器的相关说明文档可以得到其所支持的基本数据类型,据此修改OS_CPU.H中与编译器相关的数据类型重定义部分。修改后代码如下所示:


其中定义的数据类型OS_STK指出了处理器堆栈中的数据是32位的,OS_CPU_SR指出了处理器状态寄存器字长也为32位。
头文件中与处理器相关部分代码包括临界区访问处理、处理器堆栈增长方向及任务切换宏定义。临界区代码访问涉及到全局中断开关指令,由文献可以得知关中断和开中断可以分别由指令CPSID i和CPSIE i实现,文中临界段访问处理如下:


其中INT_DIS()和INT_EN()分别对应关中断和开中断处理过程。
根据文献可知文中所使用的处理器支持的堆栈为满递减方式,即堆栈的增长方向是从内存高地址向低地址方向递减并且堆栈指针总是指向栈顶的数据。在头文件OS_CPU.H中相应代码只须修改一条,如下所示
#define OS_STK_GROWTH1
此定义中的1代表堆栈方向是向下递减的。
头文件OS_CPU.H中最后一个要修改的地方是任务切换宏定义,μCOS—II内核就是通过这个宏调用来触发任务级的任务切换。任务切换一般是通过陷阱或软件中断来实现的,在基于Cortex—M3核的处理器中支持一条称为超级用户调用的指令SVC,此指令是ARM软件中断指令SWI的升级版。此处的宏定义代码修改为如下形式

大电流电感

有没有比sg3525功耗低的片子啊?功能和它要差不多sg3525太耗电了,工作100khz自己就耗电30ma,求一款低功耗的不是双极工艺的片子。消灭零回复。。。这是要做什么电源,30ma都这么在乎,说来听听。找到一款,bicom工艺的,功能和sg3525

[开关电源]稳压电源抗瞬间冲击的能力不如线性电假设输入端有强烈的瞬间冲击,即电压在极短的时间里猛烈变大,又迅速变回去,那么开关电源的输出是不是容易跟着变,而线性电源则不会呢?假设如此,有什么对策呢?在开关电源的输出那里并联电容?看你的设计参数了,我觉得反而前者的性能比较好,前提是你的电源设计带保护电路。 以及你的瞬间电压的大小。 xyz549040622 发表于 2017-5-26 12:44看你的设计参数了,我觉得反而前者的性能比较好,前提是你的电源设计带保护电路。 以及你的瞬间电压的大小。 ..

基于UC3842的电路,请大神解惑


这个电路7管脚没有电流,输出电压从37V一直缓慢往下降,管脚6的波形也不对,请大神们帮忙看看

没看懂
R5、C4改成1k、470p,再看下波形。R6改为100mR.

注塑加工厂


上一篇高速误码测试系统中的C8051F005运用

下一篇LED光柱显示器与PLC的接口技术


  
  温馨提示
网站首页 | 产品展示 | 科技前沿 | 行业资讯
本公司专业研发、设计、生产、销售贴片电感、插件电感、功率电感、大电流电感、扁平线圈电感、一体成型电感。
专业电感生产制造商,品质优异、交期快。
在线客服
热线电话