| RSS
深圳电器感厂家
您当前的位置:电感器制造商 > 行业动态

基于LPC2478 的网络型电能质量监测装置人机交互功能研发

来源:    作者:     发布时间:2015-04-08 14:48:35     点击数:


2. 1 μC/OS-Ⅱ的移植

μC /OS-Ⅱ嵌入式操作系统的移植工作包含以下几个内容:编写硬件初始化启动代码;编写设备驱动代码;修改操作系统与硬件相关的代码。

所谓启动代码,就是处理器在启动的时候执行的一段代码,主要任务是定义程序入口指针;设置异常向量;初始化处理器各模式下的堆栈和寄存器;配置 CPU 时钟源;初始化系统功能模块;跳转到C 语言主程序中等等。由于以上的操作均与处理器体系结构和系统配置密切相关,所以一般由汇编来编写。在装置中示意性的启动代码为:

PRESERVE8

Vectors LDR PC,Reset_Addr

LDR PC,Undef_Addr

LDR PC,SWI_Addr

LDR PC,PA^_Addr

LDR PC,DA^_Addr

LDR PC,IRQ_Addr

LDR PC,FIQ_Addr

Reset_Addr

为每一种处理器模式初始化堆栈;

地址重映射,设置MEMMAP = 1;

配置时钟源,设置Fpclk = 72M;

初始化FLASH;

初始化SDRAM;

IMPORT __main

LDR R0,= __main

BX R0;跳转到主大电流电感程序中

设备驱动代码是操作系统和硬件之间的桥梁。通过驱动代码,用户可以不用了解具体硬件的细节,只需调用驱动层所提供的函数就能对硬件进行操作。在移植μC /OS-Ⅱ时,亦只需根据硬件环境编写必要的硬件驱动程序即可。在此移植中,涉及到人机交互功能的硬件除微处理器LPC2478 外主要是键盘和液晶,液晶部分的驱动代码包含在了μC /GUI 图形接口的移植步骤中。而键盘的主要功能为接受用户的输入,在微处理器LPC2478 中,可以使用I /O 中断的功能来实现对键盘输入的监测,驱动代码则为键盘的中断处理程序:

void Key_Handler(void)

{ DWORD key_n = 0;

key_n = IO0_INT_STAT_F; / /读取中断状态

IO0_INT_EN_F & = 0xE07F8FFF; / /禁止中断

IO0_INT_CLR | = 0xFFFFFFFF; / /清除中断

if ((key_n&0x00800000) = = 0x00800000)

{ OSMboxPost(Keybox,(void * )1);}

if ((key_n&0x01000000) = = 0x01000000)

{ OSMboxPost(Keybox,(void * )2电感器生产厂家);}

if (key_n&0x02000000) = = 0x02000000)

{ OSMboxPost(Keybox,(void * )3);}

if ((key_n&0x08000000) = = 0x08000000)

{ OSMboxPost(Keybox,(void * )4);}

if ((key_n&0x10000000) = = 0x10000000)

{ OSMboxPost(Keybox,(void *一体成型电感 )5);}

if ((key_n&0x00001000) = = 0x00001000)

{ OSMboxPost(Keybox,(void * )6);}

IO0_INT_EN_F | = 0x1F807000; / /开启中断

}

编写完硬件初始化启动代码和设备驱动代码之后,在修改操作系统与硬件相关的代码之前,应该了解μC /OS-Ⅱ的体系结构如图3 所示。移植μC /OS-Ⅱ,最主要的工作就是移植与硬件相关的3 个文件,即OS _CPU. H、OS _CPU_C. C 和OS _CPU_A. ASM。OS_CPU. H 中含有用#define 定义的与处理器有关的常量、宏和类型定义。通过对此处定义的修改,可以使源代码中对数据类型的使用不依赖于具体的处理器。移植时,只要使处理器、编译器销售电感器和 μC /OS-Ⅱ三者之间数据类型统一即可。在此文件中还有一个μC /OS-Ⅱ对堆栈增长方式的定义OS_STK_GROWTH,由于Keil 只支持递减堆栈,因此,此处需要定义OS _ STK _GROWTH 的值为1。OS_CPU_C. C 文件中,需要进行的工作是编写任务堆栈初始化函数OSTask-StkInit()。该函数在创建一个任务时被调用。根据微处理器的寄存器结构,就可以确定差模电感在本次移植中针对LPC2478 应该使用的任务的堆栈结构,从而可以写出堆栈初始化函数代码。在OS_CPU_A. ASM 文件中,有4 个函数需要编写,分别是启动最高优先级就绪任务函数OSStartHighRdy(),时钟节拍中断服务子程序OSTickISR(),任务级任务切换函数OS_TASK_SW( ) 及中断级任务切换函数OSIntCtxSw()。

μC/OS-Ⅱ的体系结构图
μC/OS-Ⅱ的体系结构图
图3 μC/OS-Ⅱ的体系结构图。

2. 2 μC/GUI 的移植

μC /GUI 是一种用于嵌入式应用的图形支持软件,它被设计用于为任何一个图形LCD 的应用提供一个有效的不依赖于处理器和LCD 控制器的图形用户接口。μC /GUI 的软件体系模块结构如图4 所示。移植的过程具体可以分为以下几步:按照需要,定制自己的开发环境;修改配置文件;编写硬件接口函数及LCD 驱动函数;编译、链接、调试例子程序。其中又以修改配置文件,编写硬件接口函数及LCD 驱动函数最为主要。 1

一体成型电感器生产商     模压电感器打样 硬件设计跟整机的性能相关,参数指标大都是考核硬件的。 现在产品更新换代很快,吸引人的地方更多的是软件部分,人机界面(HMI)是最吸引眼球的地方,硬件较少

平价LED灯具成终结海量产品 大众LED照明灯具能被全世界老百姓用得起、用得好的一定是高品质、经济型平价LED灯具,因此平价LED灯具的性价比显得十分重要。大众LED照明灯具需要有高科技的技术、有精

✿产权结构优化的技术改造 随着全球电子产品迅速逮捕和新产品已被删除,除了国际产业转移,并在电子元件生产近两年的进一步增加,是家具行业的快速增长,液晶电视,笔记本电脑产量下降,停滞的公共汽车电子领域和低


上一篇: 基于IR53HD420驱动LED的驱动电路设计
下一篇:功率电感器
来顶一下
返回首页
返回首页
相关文章
推荐资讯
电感数字转换器
电感数字转换器
相关文章
栏目更新
栏目热门