基于S1C33L11的JPEG图像实时显示和数据传送系统的设计
扫描二维码
随时随地手机看文章
电子论坛 您现在的位置:LQ022B8DD05 的货源和报价 LQ022B8DD05 的相关技术信息 其他型号 深圳市硅宇电子有限公司联系人:销售部
电话:0755-83246984/83251574 上海丹兰电子有限公司联系人:SUSHAN
电话:021-53082716转18 深圳市杰洲科技有限公司联系人:刘小姐
电话:0755-83249867/83242395/83242392 深圳市福田区鸿鑫电子商行联系人:陈先生
电话:0755-83797878/83798310/83798320/83797993/81630565 >>更多供应商 基于S1C33L11的JPEG图像实时显示和数据传送系统的设计 摘 要:本文介绍了将mC/OS-II嵌入式操作系统移植到S1C33L11微处理器的方法,并给出了以S1C33L11为核心构成的一个JPEG图像实时显示和数据传送系统的设计方案。
关键词:S1C33L11;JPEG;嵌入式系统;mC/OS-II 引言
近年来,随着微处理器性能的不断提高,嵌入式应用越来越广泛。基于某个操作系统的实时、多任务系统的设计和应用成为微处理器应用的热点。S1C33L11是由精工爱普生推出的32位高速、低功耗和低电压微处理器。本文介绍了将mC/OS-II嵌入式操作系统移植到S1C33L11微处理器的方法,并给出了以S1C33L11为核心构成的JPEG图像实时显示和数据传送系统的设计方案。mC/OS-II的移植
mC/OS-Ⅱ的源码绝大部分是用移植性很强的ANSI C写的,只是和微处理器硬件相关的那部分采用汇编语言,这样把mC/OS-II移植到S1C33L11中主要是要修改与处理器有关的代码,如:OS_CPU.H、OS_CPU_C.C 、OS_CPU_A.ASM。
OS_CPU.H文件
OS_CPU.H文件主要是定义和处理器有关的数据类型及有关中断禁止、中断允许、堆栈的增长方向的设置。
S1C33L11处理器所使用的编译器中规定char为8位有符号数、short为16位有符号数、int和long都是32位有符号数。S1C33L11中堆栈的增长方向为从高地址到低地址。
OS_CPU_C.C文件
在OS_CPU_C.C文件中包含6个简单的C函数,而和移植密切相关的是OSTaskInit()函数,它的功能是模拟中断发生时处理器压栈过程,把CPU的寄存器内容压到任务堆栈中。
在S1C33L11中,堆栈是32位的,中断的产生是先把PC压栈然后是PSR压栈。S1C33L11中OSTaskInit()函数模拟压栈过程是:首先任务函数地址压栈然后是PSR值压栈,接着是16个32位通用寄存器(R15~R0)的压栈模拟、AHR、ALR和SP的压栈模拟,最后返回栈顶的指针地址。其中PSR的值为 0x00000010设为中断使能。
OS_CPU_A.ASM文件
在OS_CPU_A.ASM文件中包含四个汇编语言的函数:OSStartHighRdy()、OSCtxSw()、OSIntCtxSw()和OSTickISR()。
OSStartHighRdy()函数由OSStart()函数调用,功能是运行优先级最高的就绪任务。在这个函数的移植中,关键之一是从OSTCB HighRdy中得到所指堆栈中的SP,其二是出栈操作。由于在本移植中SP是最后压栈的,在出栈时,应是弹出完16个通用寄存器后的SP值才是中断返回指令执行前的SP,因而在出栈操