μCOS-Ⅱ在MSP430F149上的移植_

技术创新

中文核心期刊《微计算机信息》(嵌入式与SOC)2007年第23卷第11-2期

360元/年邮局订阅号:82-946《现场总线技术应用200例》单片机开发与应用

C/OS-Ⅱ在MSP430F149上的移植

μC/OS-IIinthetransplantMSP430F149

(上海交通大学)吴明清赵辉

WUMINGQINGZHAOHUI摘要:通过对TI公司16位微处理器MSP430F149的性能结构的分析,结合嵌入式操作系统μC/OS-Ⅱ的可移植性给出了该操作系统在微处理器MSP430F149上移植的方法,并测试内核自身的运行状况和建立多任务应用程序验证了移植的成功。关键词:μC/OS-Ⅱ;嵌入式操作系统;MSP430;移植

中图分类号:TP316文献标识码:A

Abstract:ThesolutionofportingembeddedsystemμC/OS-ⅡtoMSP430F149isdiscussedaccordingtoanalysisthesoftwareandhardwarestructureofμC/OS-Ⅱand16bitsinglechipMSP430F149.Theportingsolutionistestifiedsuccessfulthroughkerneltestandmuti-taskapplicationvalidation.

Keywords:μC/OS-Ⅱ,embeddedoperationsystem,MSP430,porting

文章编号:1008-0570(2007)11-2-0108-02

μC/OS-Ⅱ是一个源代码公开的嵌入式实时操作系统

(RTOS),该操作系统理论上最多可以管理64个任务,一般应用

时需要留出8个任务给系统本事使用,因此用户的应用程序最

多可以有56个任务,μC/OS-Ⅱ的内核为完全可剥夺型实时内

核,即系统总是运行就绪条件下优先级最高的任务,并支持信号

量、邮箱、消息队列等多种进程间通讯机制,同时用户可以根据

需求通过条件编译实现对内核中的功能模块的裁剪,此外μC/

OS-Ⅱ还具有可固化、中断管理、高稳定性和可靠性等特点,因

此将μC/OS-Ⅱ移植到微处理器(MCU)上,对于缩减产品开发

和升级周期,提高可靠性和稳定性,降低成本方面有着重要的意

义。以下主要讨论嵌入式实时操作系统μC/OS-Ⅱ在

MSP430F149上的移植。

1基于16位微处理器MSP430F149

的硬件应用系统

1.1MSP430F149的特点与功能结构

MSP430F149是美国德州仪器(TI)公司推出的16位微处理

器,它的低功耗特别低,支持1.8~3.6V电压供电,全速运行时的

电流仅为280μA,休眠状态微处理器的电流只有0.1μA;支持五

中省电模式,同时具有很快的唤醒速度,唤醒时间只为6μS;片

内集成12位A/D转换器,两种定时器(timer_A和timer_B),

UART通讯端口2个,比较器等,满足了大多数嵌入式仪器的应

用需求。最重要的是MSP430F149程序存储器有60K并支持

JTAG仿真,真正实现了在线仿真调试,方便了嵌入式实时操作

系统的移植。

1.2用于移植μC/OS-Ⅱ的硬件电路

这里为了方便说明μC/OS-Ⅱ在MSP430F149上的移植,构

建了基于微处理器MSP430F149的简单硬件系统,主要由三部

分构成:电源,处理器及其JTAG仿真,RS232通讯接口。

电源部分主要提供稳定电压+5V和+3.3V,+5V用于给

RS232串行通讯端口控制电路供电,+3.3V是微处理器

MSP430F149的供电电压。用于移植嵌入式实时操作系统μC/

OS-Ⅱ主体硬件部分是由微处理器MSP430F149及其JTAG仿

真和RS232通讯接口控制器MAX232构成,其硬件电路原理图

如图1所示。

图1微处理器系统硬件原理图

2μC/OS-Ⅱ的移植

2.1嵌入式操作系统μC/OS-Ⅱ的可移植性

嵌入式实时操作系统μC/OS-Ⅱ绝大部分源代码是用移植

性很强的ANSIC写成的,与微处理器硬件相关的部分是用汇

编语言写成的。与微处理器硬件相关的汇编语言已经压缩到

最低限度,因此μC/OS-Ⅱ可以移植到目前主流的所有微处

理器上。

2.2选择移植所用的编译环境

移植μC/OS-Ⅱ到MSP430F149上需要一个标准的C交叉

编译器,当然该编译器是针对微处理器MSP430F149的,即编译

器能够将标准的C代码编译成MSP430F149能够执行的机器

码。同时,μC/OS-Ⅱ是完全可剥夺型内核,只能通过C编译器来

产生可重入型代码。C编译器还应该支持汇编语言,这是因为一

些对CPU寄存器的操作只能通过汇编语言来实现。在微处理器

MSP430F149的开发工具中,IAREmbeddedWorkbenchfor

MSP430能够完全符合这些移植要求,该集成编译环境还具有

软件仿真等功能,故选用它作为移植用的编译器。

2.3μC/OS-Ⅱ移植到MSP430F149上的步骤

吴明清:硕士

μ

108

--

邮局订阅号:82-946360元/年技

术创新

单片机开发与应用

《PLC技术应用200例》

您的论文得到两院院士关注

从μC/OS-Ⅱ的软硬件体系结构可以看到,与处理器相关的代码主要是OS_CPU.H、OS_CPU_A.ASM和OS_CPU_C.C这三个文件,移植的过程也就是对这三个文件的编写。

OS_CPU.H包括了用#define语句定义的、

与处理器相关的常数、宏及类型。其中,重点是实现临界段代码保护函数

OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL(),函数OS_EN-TER_CRITICAL()实现的是关中断,函数OS_EXIT_CRITICAL()实现的是开中断。和所有的实时内核一样,μC/OS-Ⅱ需要先关

中断再处理临界段代码,并在处理完毕后重新开中断,这就使得

μC/OS-Ⅱ能够保护临界段代码免受多任务或中断服务子程序

的破坏。

OS_CPU_A.ASM文件中需要编写4个简单的汇编语言函数:

函数OSStartHighRdy()是使就绪态任务中优先级最高的任务开始运行,基于MSP430F149的代码实现如下:

OSStartHighRdycall#OSTaskSwHookmov.b#1,&OSRunning;内核运行mov.wSP,&OSISRStkPtr;保存中断堆栈

mov.w&OSTCBHighRdy,R13;载入优先级最高任务堆栈mov.w@R13,SPPOPALL;恢复所有寄存器reti;中断返回

函数OSCtxSw()是在一般运行情况下实现任务的切换,即,让优先级最高的任务获得CPU控制权,实现代码如下:

OSCtxSwpushsr;保存中断SR指针PUSHALL;保存所有寄存器mov.w&OSTCBCur,R13mov.wSP,0(R13)call#OSTaskSwHookmov.b&OSPrioHighRdy,R13mov.bR13,&OSPrioCurmov.w&OSTCBHighRdy,R13mov.wR13,&OSTCBCurmov.w@R13,SPPOPALL

reti;中断返回

函数OSIntCtxSw()是实现在中断服务子程序中任务切换的功能,具体代码如下:

OSIntCtxSwcall#OSTaskSwHookmov.b&OSPrioHighRdy,R13mov.bR13,&OSPrioCurmov.w&OSTCBHighRdy,R13mov.wR13,&OSTCBCurmov.w@R13,SP

POPALL;恢复所有寄存器reti

函数OSTickISR()是系统时钟节拍中断服务程序,其执行频率在10~100Hz,主要功能是检查是否有由于延时而被挂起的任务成为就绪任务,如果有就调用OSIntCtxSw()进行任务切换,从

而运行高优先级的任务。

OS_CPU_C.C文件中,需要写10个C语言函数,唯一需要

的是编写堆栈初始化函数OSTaskStkInit(),其他的9个函数只要

声明,并不一定要包含任何代码。由于MSP430F149的堆栈是从

上往下递减的,故堆栈初始化函数OSTaskStkInit()实现代码为:

OS_STK*OSTaskStkInit(void(*task)(void*pd),void*pdata,OS_STK*ptos,INT16Uopt)

{INT16U*top;

opt=opt;/*避免编译器的警告*/top=(INT16U*)ptos;top--;

*top=(INT16U)task;top--;

*top=(INT16U)task;/*中断返回向量*/top--;

*top=(INT16U)0x0008;/*状态寄存器*/top--;......

*top=(INT16U)pdata;top--;......

return((OS_STK*)top);/*返回栈顶指针给调用该函数的函数*/

至此,μC/OS-Ⅱ在MSP430F149上的移植就已经完成,可以建立多任务应用程序来测试嵌入式操作系统μC/OS-Ⅱ了。

3测试移植代码

3.1测试内核自身的运行状况

通过测试内核自身的运行状况来验证移植的成功与否,可以避免把应用软件和内核的问题混在一起,使问题更加复杂化。如果在测试内核自身运行状况时有问题,就是内核的问题,排除了应用软件代码的问题。这里通过依此验证OSTaskStkInit()和文件OS_CPU_A.ASM中的OSStartHighRdy()、OSCtxSw()、OSIntC-txSw()、OSTickISR()四个函数来证明内核是移植成功的。

3.2建立多任务应用程序验证系统的移植成功本系统建立了两个任务来测试μC/OS-Ⅱ是否成功移植到MSP430F149,它们是:

任务一:从MSP430F149A/D采样通道0采样OSTaskCreate(ADTask,(void*)0,&TaskStartStk[TASK_STK_SIZE-1],1);

任务二:RS232串口与上位机通讯OSTaskCreate(UartTask,(void*)0,&TaskStartStk[TASK_STK_SIZE-1],2);

测试主要实现功能是将的A/D采样任务得到的数据通过RS232串口发送给上位机,实验证明,利用精密可调电阻改变MSP430F149A/D采样通道0的模拟输入电压量,上位机端收到的数据也做相应的变化,证明嵌入式实时操作系统μC/OS-Ⅱ在MSP430F149移植是成功的。

4结论

μC/OS-Ⅱ是比较小而完善的嵌入式实时操作系统,本文成功将μC/OS-Ⅱ移植到微处理器MSP430F149上,并实现了多任

务运行,这对在中低档微处理器、单片机上构建和应用嵌入式实时操作系统有着一定的意义,同时让基于这些微处理器开发的嵌入式系统具有运用嵌入式实时操作系统所带来的不可替代的优势。

(下转第112页)

109-

技术创新

中文核心期刊《微计算机信息》(嵌入式与SOC)2007年第23卷第11-2期

360元/年邮局订阅号:82-946《现场总线技术应用200例》单片机开发与应用

较强的环境,而且其设计成本较低,适合推向市场。下一步将

在此基础上开发新一代的自动化性能更高的控制器,如:液晶

信息显示面板、远红外遥控系统、及语音信息播报系统等,给

用户提供更大的方便。

本文作者的创新点:该控制器的设计使传统的全手工操作

的斜条机为微电脑数字控制的斜条机所取代。该设计从器件的

选择上实现了设计的低成本,同时设计中加入的抗干扰措施使

此控制器在强干扰条件下仍能自如运行。

产生的经济效益:该控制器是为某公司设计,因其设计成

本低,抗干扰能力强,使其产品的市场竞争力大幅提高,利润

率大大提高。

图3主程序流程图

参考文献

[1]马鸿文,基于AT89C51单片机的电子计价秤的设计与实现[J]

微计算机信息,2005,(25)

[2]李晋,王玲,韩英,基于AT89C52的学习型遥控器的设计[J].微

计算机信息,2006,(26)

[3]彭宣戈,肖斌,一种基于89C51对机动车辆超速的监测报警系

统[J].微计算机信息,2006,(22)

[4]张武,顾凯,基于51单片机的车用数字仪表设计与实现.今日

电子2005,(1)

[5]张培仁,孙占辉,张村峰等.MCS-51单片机原理及应用[M]清华

大学出版社,2002

作者简介:刘滨(1962-),男,四川德阳人,工程硕士,教授,现任中

国海洋大学机电工程系教研室主任,主要从事嵌入式系统、智

能仪器仪表、计算机工业过程控制、仪器仪表网络化和单片机应

用等技术开发和产品研制。王璇(1981-),女,汉族,中国海洋大

学工程学院硕士研究生,主要研究方向:嵌入式系统、智能仪器

仪表、计算机过程控制。

Biography:LiuBin(1962-),male,theHannationality,

Sichuan,professorandmastertutorofEngineeringCollegeof

OceanUniversityofChina,studyintheembeddedsystem,the

intelligentinstrumentandcomputercontroltechnology.

(266100山东青岛中国海洋大学工程学院机电工程系)刘滨

王璇张冰

(EngineeringCollegeofOceanUniversityofChina,Qingdao

266100,China)LiuBinWangXuanZhangBing

通讯地址:(266100山东青岛青岛市崂山区松岭路238号中

国海洋大学(崂山校区)工程学院2005控制理论与控制工程)

王璇

(收稿日期:2007.8.23)(修稿日期:2007.10.15)

(上接第102页)

参考文献:

[1]徐翠琴,吴蕾,全书海.基于VB的燃料电池发动机监控系统设

计.微计算机信息,2007,23(3-1):21-23

[2]秦国防,牛鑫.关于KS0107B液晶128*64模块编程的新思路.

中国科技信息,2005,15:114-115

作者简介:胡鑫(1983-),男,硕士研究生,研究方向:控制理论

与控制工程;陈启宏(1976-),男,硕士生导师,研究方向:网络

控制技术,智能控制与应用;全书海(1955-),男,博士生导师,

研究方向:智能控制,检测技术与图像处理等方面。

Biography:Huxin(1983-),Male,Bachelor,ResearchDirection:

ControlTheoryandControlEngineering.

(430070武汉武汉理工大学自动化学院)胡鑫陈启宏全书海

(CollegeofAutomation,WuhanUniversityofTechnology,

Wuhan,430070,)HuxinChenQihongQuanShuhai

通讯地址:(430070武汉武汉理工大学东院自动化研0510信

箱)胡鑫

(收稿日期:2007.8.13)(修稿日期:2007.10.20)

(上接第109页)

本文作者创新点:实现了实时嵌入式操作系统μC/OS-Ⅱ在中低

档单片机上的成功移植和应用。为在中低档单片机系统中应用

实时嵌入式操作系统提出了思路和实例。

参考文献

[1]TEXASINSTRUMENTS,DatasheetofMSP430x13x,

MSP430x14x,MSP430x14x1MIXEDSIGNALMICROCONTR

OLLER.TEXASINSTRUMENTSCORP,2003.8

[2]王海峰,张海丽,张玉林.基于uC/OS-II的微流体芯片嵌入式

实时系统构建[J]微计算机信息,2006,5-2:48-50

[3]JeanJ.Labrosse,μC/OS-Ⅱ源码公开的实时嵌入式操作系统

(第二版),邵贝贝,译.北京:北京航空航天大学出版社,2003.5

[4]王晓银,王彦瑜,蒋锋.基于MSP430F149单片机的温度监测

系统的设计[J]微计算机信息,2006,7-2:77-78

作者简介:吴明清(1981-),男,安徽淮南市人,硕士,专业:仪器

科学与技术;赵辉(1965-),男,辽宁阜新人,上海交通大学教授,

博导,现代检测技术

Biography:WuMingqing(1981-),male,Anhui,ShanghaiJiao

TongUniversity,Master,InstrumentsEngineering;ZhaoHui

(1965-),male,Liaoning,ShanghaiJiaoTongUniversity,

Professor,Researchmodernmeasurementtechnology

(200240上海上海交通大学)吴明清赵辉

通讯地址:(200240上海上海市东川路800号上海交大闵行

校区B0403592班)吴明清

(收稿日期:2007.8.23)(修稿日期:2007.10.15)

地址:北京海淀区皂君庙14号院鑫雅苑6号楼601室

微计算机信息杂志收邮编:100081

电话:010-62132436010-62192616(T/F)

《现场总线技术应用200例》已出版,

每册定价110元(含邮资),汇至

112

--

相关文档
最新文档