当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]摘要:本文在分析实时嵌入式系统mc/os-ii和lpc2119芯片的基础上,对mc/os-ii向处理器上移植前需要了解的知识和需要做的前期准备工作进行了分析和讨论,最后给出了移植的具体

摘要:本文在分析实时嵌入式系统mc/os-ii和lpc2119芯片的基础上,对mc/os-ii向处理器上移植前需要了解的知识和需要做的前期准备工作进行了分析和讨论,最后给出了移植的具体工作。论文着重分析了mc/os-ii的移植。
  c/os-ii是一个完整的,可移植、可固化、可裁减的占先式实时多任务内核,它功能强大,支持56个用户任务,支持信号量、邮箱、消息队列等多种常用的进程间通信机制。公开源代码,程序可读性强、移植性好,同时可免费获得。

  lpc2119是由philips生产的一款32位arm7tdmi-s微处理器,其核心为高性能的32位risc体系结构,并具有高密度的16位指令集和极低的功耗。具有零等待128k字节的片内flash,16k的sram,无需扩展存储器,使系统更为简单、可靠。


  本文主要讨论?c/os-ii在lpc2119上的移植,同时对移植前需要掌握的基本知识进行了分析,特别是对与移植密切相关的三个文件进行了详细分析,还对用到的芯片的重映射概念进行了详细说明。lpc2119简介

  lpc2119片上资源除了上面介绍的存储器外,还有2个uart、高速i2c接口、2个spi接口、6路输出的pwm单元、4路10位ad转换器、2个32位定时器、2个can通道、实时时钟及看门狗等,通过片内pll可实现最大为60mhz的cpu操作频率。

  由于下文启动代码的编写要用到重映射(remap)的概念,lpc2119以及其它系列的芯片如at91等也都有重映射的功能,所以在此加以说明对其它arm芯片的学习具有借鉴作用。


  当系统上电后,程序将自动从0地址处开始执行,因此在系统的初始状态,要求0地址处的存储器是非易性的rom或flash等。但是rom或flash的访问速度相对较慢,每次中断发生后,都要从读取rom或flash上的向量表开始,影响了中断响应速度。因此,lpc2119提供一种灵活的地址重映射方法,该方法可以将内部ram的地址重新映射到0x0的位置。在系统执行重映射命令之前,需要将flash中的中断向量代码拷贝到内部ram中。这样在重映射命令执行之后相当于从内部ram中0x0的位置找到中断向量,而实际上是将ram的起始地址0x40000000映射为0x0了。这样,中断执行时相当于在ram中找到对应中断向量,实现异常处理调试。?c/os-ii的介绍

  ?c/os-ii实际上是一个嵌入式操作系统内核,内核提供的基本服务就是任务切换。在?c/os-ii中,为每个任务分配专门的堆栈空间。?c/os-ii进行任务切换的时候,会把当前任务的cpu寄存器放到此任务的堆栈中,然后再从另一个任务的堆栈中恢复原来的工作寄存器,继续运行另一个任务。所以,寄存器的入栈和出栈是?c/os-ii多任务调度的基础。

  与处理器相关的代码只有三个文件,一般移植的时候只要修改这三个文件就可以了。编写启动代码

  启动代码是芯片复位后进入c语言的main()函数前执行的一段代码,主要是为运行c语言程序提供基本运行环境,如初始化外围部件、存储器系统等。因此启动代码的功能有些类似pc机中的bios和vxworks中的bootloader。由于飞利浦未提供该芯片的启动代码,所以需要自己编写启动代码。

  启动代码可以划分为五个文件:startup.s、irq.s、stack.s、heap.s和target.c。startup.s包含了前面提到的异常向量表和系统初始化代码,一般无需改动;irq.s包含中断服务程序与c程序的接口代码,可根据实际使用的中断情况进行少量修改;stack.s和heap.s保存c语言使用的堆和栈的开始位置;target.c包含目标板特殊的代码,包括异常处理程序和目标板初始化程序,可根据程序的需要修改。

  由于启动代码的编写很长,而本文只是想指出编写启动代码是移植前必须做的准备工作并对其进行简要说明,因此在这里就不具体列出所有代码(具体的启动代码见参考文献[1]),而给出一个很重要的目标板初始化程序中的函数targetresetinit()的流程图,从中可以看出在进入main()函数前对系统进行的基本初始化工作的具体步骤。移植

  有了上面的知识和编写启动代码这项准备工作完成后,就可以进入具体移植阶段了。主要完成以下工作:
① 为了增强代码的可移植性,所有c文件添加头文件includes.h。
② 用户程序添加config.h。
③ 在文件os_cpu.h中需要添加或修改的主要代码有:
? 定义不依赖于编译器的数据类型:
typedef unsigned char?? int8u;
typedef unsigned short? int16u;
typedef unsigned int??? int32u;
typedef int32u?????? os_stk;

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭