版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
教材实验指导书课后辅导:二教306室QQ:191458401zhangsx程安排/p/zhangsxnet作业实验考勤考试课堂提问课程活动:论文、竞赛、科研项目考试实验时间安排实验地点:办公楼7层嵌入式实验室
一二三四五六1-2
FPGA原理电科111-2实验(10~17周)嵌入式系统电子111实验(9~16周)3-4
FPGA原理电科111-22108嵌入式系统电子111-22108
嵌入式系统电子111-23504FPGA原理电子111-25506
5-6
FPGA原理电子112实验(10~17周)FPGA原理电子111-23204
FPGA原理电科111-231047-8FPGA原理电子111实验(10~17周)嵌入式系统电子111-23001
嵌入式系统电子112实验(9~16周)9-10
嵌入式系统电子111-22604
/嵌入式系统相关网站山东工商学院电子信息系嵌入式系统基础知识张守祥zhangsx@第一章1.2嵌入式系统的组成1.1嵌入式系统概述主要内容1.4嵌入式系统开发概述1.3嵌入式操作系统举例1.5嵌入式程序设计和分析1.7数据结构1.6C语言的位运算嵌入式系统开发、研究和学习现状1
嵌入式系统是当今电子信息产业最热门的研究学习领域之一,有着广大的学习研发用户群和潜力巨大的市场。不仅有微处理器芯片,还有用于学习和研发的各种配套的软件开发包。2
嵌入式系统要和各个不同行业的应用相结合,要求更多的计算机以外的专业知识,其开发人员往往是各个应用领域的专家。因此开发工具的易学、易用、可靠、高效是基本要求。3
目前底层系统和硬件平台已经相对比较成熟,实现各种功能的芯片应有尽有,巨大的市场需求给我们提供了学习和开发嵌入式技术的机遇。zhangsx@8嵌入式系统应用9什么是嵌入式系统嵌入式系统是一种应用系统,它至少包含一个可编程的计算机(通常是某种形式的微控制器、微处理器或数字信号处理芯片),且使用该系统的人一般并未意识到该系统是基于计算机的。zhangsx@10嵌入式系统运行模式SoC传感器执行器人机界面上位机嵌入式系统嵌入式系统开发模式嵌入式系统嵌入式系统开发模式仿真器宿主机SoC传感器执行器人机界面zhangsx@13简单的嵌入式应用简单的嵌入式应用不需要使用操作系统当系统上电后,main函数将被调用,首先初始化,然后进入循环直到系统停电或者出现重大错误。超级循环voidmain(void){
X_init();//初始化 While(1)X();//实现的功能}zhangsx@14简单的嵌入式应用开发过程简单的嵌入式应用的开发过程在个人电脑上配置交叉开发环境安装开发板(评估板)和仿真器编写程序,交叉编译调试软、硬件利用仿真器将软件烧到开发好的系统中进行现场运行测试15复杂的嵌入式系统应用开发确定需求根据需求选择合适的硬件硬实时/软实时系统?什么处理器?哪些辅助硬件?选择嵌入式操作系统选择开发平台编程语言、软件开发工具实际的开发平台包括硬件开发平台、操作系统、编程语言以及软件开发工具zhangsx@16编写并优化代码一般在主机系统上进行开发和优化工作。代码优化主要在软件执行速度和软件尺寸之间取得平衡,满足嵌入式系统对速度和存储空间的限制。在嵌入式开发中,一般需要避免使用大型的软件库,避免使用递归编程,减少堆栈的消耗。在模拟器或者开发板上调试复杂的嵌入式系统应用开发开发模式首先在通用计算机上编写程序,然后通过交叉编译生成目标平台上可以运行的二进制代码格式,最后再下载到目标平台上的特定位置上运行。
宿主机(Host)宿主机的软硬件资源比较丰富,不但包括功能强大的操作系统(如Windows和Linux),而且还有各种各样优秀的开发工具(如WindRiver的Tornado、Microsoft的EmbeddedVisualC++等),能够大大提高嵌入式应用软件的开发速度和效率。
目标机(Target)它可以是嵌入式应用软件的实际运行环境,也可以是能够替代实际运行环境的仿真系统,但软硬件资源通常都比较有限。嵌入式系统交叉开发特点一般包括交叉编译器、交叉调试器和系统仿真器,其中交叉编译器用于在宿主机上生成能在目标机上运行的代码,而交叉调试器和系统仿真器则用于在宿主机与目标机间完成嵌入式软件的调试。嵌入式系统交叉开发工具嵌入式系统交叉开发过程首先利用宿主机上丰富的资源和良好的开发环境开发和仿真调试目标机上的软件。然后通过JTAG、串口或以太网络连接将交叉编译生成的目标代码传输并装载到目标机上。并在监控程序或者操作系统的支持下利用交叉调试器进行分析和调试。最后目标机在特定环境下脱离宿主机单独运行。★
加快软件开发进度
★
降低硬件调试成本
★
降低学习入门门槛软件仿真技术——软件仿真的优点zhangsx@21嵌入式系统的实时性嵌入式系统一般具有实时的特点。
所谓实时系统是指在这种系统中,一个优先级高的任务能够得到立即的、没有延迟的服务,不需要等待任何其他优先级低的任务,一旦它得到CPU的使用权,将一直执行直到工作结束或者出现更高级别的进程。为了满足这样的需求,嵌入式操作系统必须具有高效的中断处理能力和高效的IO能力CPU CentralProcessingUnit 中央处理器DSP DigitalSignalProcessor 数字信号处理器MCU MicroControlUnit 微控制器MPU MicroProcessorUnit 微处理器
CPU、MCU、MPU、DSP的区别MCU适合不同信息源的多种数据的处理诊断和运算,侧重于控制,由于对体积、功耗、成本、开发难度等因素考虑一般集成了片上外围器件,速度不是很高。DSP运算能力强,擅长很多的重复数据运算。MPU是高度集成通用结构的处理器。CPU、MCU、MPU、DSP的区别型号架构资源价格(元)AT89S518051最高频率33MHz4KBFlash128B内部RAM
32个可编程IO引脚两个16bit的计数器一个UART口
4STM32F103ARMCortex-M3最高频率72MHz64KBFlash20KBSRAM
80个可编程IO引脚2个12bit的ADC7通道DMA控制器标准调试口(SWD和JTAG)
7个定时器USB接口2个I2C接口3个UART2个SPI接口
20S3C2410ARM9最高工作频率200MHzSDRAM控制器LCD控制器
4通道DMA控制器3个UART2个SPI1个I2C接口IIS音频接口SDHOST接口2个USB接口8个10bitADC摄像头接口45OMAP3530ARMCortex-A8+DSP最高工作频率1G240MHz视频处理单元支持多种协议的实时编解码图形处理单元
视音频接口以太网接口DDR控制器USBUART、IrDA、I2C、SPI150单片机与嵌入式系统的价格比较zhangsx@25带操作系统与不带操作系统的软件开发的区别一个处理芯片不运行操作系统,称为裸板程序,这个程序直接在板子上运行;基于操作系统的程序,在“别人的基础上”更快更方便地实现自己的功能。26voidled_init(void){GPBCON=GPB5_out;//将LED对应的GPB5引脚设为输出}voidled_on(void){GPBDAT&=~(1<<5);}voidled_off(void){GPBDAT|=(1<<5);}单片机LED驱动程序27
#defineDEVICE_NAME"leds"/*加载模式后,执行”cat/proc/devices”命令看到的设备名称*/
#defineLED_MAJOR231//主设备号/*应用程序执行ioctl(fd,cmd,arg)时的第2个参数*/
#defineIOCTL_LED_ON0
#defineIOCTL_LED_OFF1//用来指定LED所用的GPIO引脚
staticunsignedlongled_table[]={
S3C2410_GPB5,
S3C2410_GPB6,
S3C2410_GPB7,
S3C2410_GPB8,
};//用来指定GPIO引脚的功能:输出
staticunsignedintled_cfg_table[]={
S3C2410_GPB5_OUTP,
S3C2410_GPB6_OUTP,
S3C2410_GPB7_OUTP,
S3C2410_GPB8_OUTP,
};LinuxLED驱动程序28
//*应用程序对设备文件/dev/leds执行open(...)时,就会调用s3c24xx_leds_open函数
staticints3c24xx_leds_open(structinode*inode,structfile*file)
{
inti;
for(i=0;i<4;i++){//设置GPIO引脚的功能:本驱动中LED所涉及的GPIO引脚设为输出功能
s3c2410_gpio_cfgpin(led_table[i],led_cfg_table[i]);
}
return0;
}LinuxLED驱动程序29LinuxLED驱动程序//应用程序对设备文件/dev/leds执行ioclt(...)时,就会调用s3c24xx_leds_ioctl函数
staticints3c24xx_leds_ioctl(
structinode*inode,
structfile*file,
unsignedintcmd,
unsignedlongarg)
{
if(arg>4)
return-EINVAL;
switch(cmd){
caseIOCTL_LED_ON:
//设置指定引脚的输出电平为0
s3c2410_gpio_setpin(led_table[arg],0);
return0;
caseIOCTL_LED_OFF:
//设置指定引脚的输出电平为1
s3c2410_gpio_setpin(led_table[arg],1);
return0;
default:
return-EINVAL;
}
}30LinuxLED驱动程序/*这个结构是字符设备驱动程序的核心
*当应用程序操作设备文件时所调用的open、read、write等函数,
*最终会调用这个结构中指定的对应函数
*/
staticstructfile_operationss3c24xx_leds_fops={
.owner=THIS_MODULE,/*这是一个宏,推向编译模块时自动创建的__this_module变量*/
.open=s3c24xx_leds_open,
.ioctl=s3c24xx_leds_ioctl,
};
31LinuxLED驱动程序
//执行insmod命令时就会调用这个函数
//
staticint__inits3c24xx_leds_init(void)
{
intret;
/*注册字符设备
*参数为主设备号、设备名字、file_operations结构;
*这样,主设备号就和具体的file_operations结构联系起来了,
*操作主设备为LED_MAJOR的设备文件时,就会调用s3c24xx_leds_fops中的相关成员函数
*LED_MAJOR可以设为0,表示由内核自动分配主设备号
*/
ret=register_chrdev(LED_MAJOR,DEVICE_NAME,&s3c24xx_leds_fops);
if(ret<0){
printk(DEVICE_NAME"can'tregistermajornumber\n");
returnret;
}
printk(DEVICE_NAME"initialized\n");
return0;
}32LinuxLED驱动程序//执行rmmod命令时就会调用这个函数
staticvoid__exits3c24xx_leds_exit(void)
{
/*卸载驱动程序*/
unregister_chrdev(LED_MAJOR,DEVICE_NAME);
}/*这两行指定驱动程序的初始化函数和卸载函数*/
module_init(s3c24xx_leds_init);
module_exit(s3c24xx_leds_exit);zhangsx@33嵌入式系统硬件分类集成电路通用集成电路专用集成电路可编程集成电路74系列FPGA/CPLDASICSoCzhangsx@34嵌入式系统硬件分类嵌入式系统的处理器可以分为:微控制器MCU嵌入式微处理器MPU
数字信号处理器DSP
可编程芯片FPGA多核处理器MCU开发趋势MCU发展给开发工具带来的挑战集成开发环境调试、跟踪、分析工具软件仿真技术图形化开发工具高效编译工具MCU发展对工具的挑战——MCU的发展趋势而32位MCU市场增长速度超过了半导体市场其它部分的增长速度8位MCU市场的份额过去几年时间里则有所下降16位MCU市场的份额增长幅度不大32位MCU的特性:■集成了复杂的模拟功能;■
大规模的内存、高性能的内核;■高度集成和软件维护方面的优势;■在软件编程维护方面比8位、16位MCU有着天然的优势;并且提供了更大的寻址空间和更高的处理器性能;■高性价比、低功耗。MCU发展对工具的挑战——MCU的发展趋势典型的32位MCU:Cortex-M3■哈佛结构;■
1.25DMIPS/MHz和0.19mW/MHz;■
Thumb-2指令集以16位的代码密度带来了32位的性能;■单周期乘法指令和硬件除法指令;■内置了快速的中断控制器;■优越的实时特性;■中断间的延迟时间降到只需6个CPU周期;■低功耗模式唤醒的时间只需6个CPU周期;■与ARM7TDMI®相比运行速度最多可快35%且代码最多可节省45%。基于Cortex-M3的产品:LuminaryMicro公司的Stellaris系列ST公司的STM32系列……Keil
RVDS、MDK
MPLABVisualDSP++
XilinxPlatformStudio
NiosIIIDE
Workbench
IAREWARM
MCU发展对工具的挑战——工程师需要什么工具?MULTICodeWarrior怎么选择?DynamicC高性能的编译工具—三类编译工具免费编译工具—GCC工具商编译工具—KeilC、WindRiverCompiler、IARCompiler……芯片设计商编译工具—RVCT、MPISSDEGNUTools推荐—MCU开发工具IAREWARMKeilMDKzhangsx@41嵌入式操作系统分类硬实时系统确保系统中的关键任务在确定的时间得到响应,不能有失败的情况,否则会出现严重后果软实时系统设计的时候是有响应时间要求的,但是偶尔某些任务的响应时间超过这个限制也不会有严重的后果非实时系统无响应时间的要求zhangsx@42嵌入式操作系统一览zhangsx@43常见嵌入式操作系统(第一类)第一类以Wince、Linux、Android为代表属于大型操作系统,拥有内核任务调度、菜单界面、多媒体、网络、文件存储、外设驱动等一系列完善的功能,但这类操作系统属于非实时操作系统,往往用于办公、娱乐、人机接口等对时间要求不高的场合。此外因为功能太完善,对硬件的要求很高,最低配置CPU需要ARM9200MHz,内存需要32MByte,支持MMU内存管理单元,标配彩屏。zhangsx@44常见嵌入式操作系统(第二类)第二类以VxWorks为代表属于功能丰富的嵌入式实时操作系统,功能丰富。往往用于高实时、高可靠的军工、航空航天、工业自动化领域,对硬件要求也比较高。zhangsx@45常见嵌入式操作系统(第三类)第三类以uC/OS-II为代表只有一个抢占式多任务实时操作系统的任务内核,此外还提供一些内核管理的函数接口及必要的扩展功能,其它的功能库如菜单界面、网络等都需要自己扩展,这类操作系统主要应用于中低端小型的项目中,成本要求高,需求多样,但一般不是很复杂,实时性有要求,但不苛刻,往往都是消费类或者一般的工业自动化设备,比如白色家电的控制系统、小型监控、传感器的测试平台、仪器仪表、小型工业自动化领域取代PLC,降低成本等。zhangsx@46uC/OSII免费的公开源码实时操作系统内核提供任务调度和管理、时钟管理、任务间同步与通信、内存管理和中断服务等功能最多支持64个任务,分别对应优先级0~63,其中0为最高优先级可剥夺实时多任务内核调度工作的内容分为两部分:最高优先级任务的寻找和任务切换几款典型的嵌入式操作系统介绍zhangsx@47内核是针对实时系统的要求来设计实现的,相对比较简单,可以满足较高的实时性要求
但是没有网络功能和文件系统,对于像媒体播放、需要网络和图形界面支持的应用就比较差uC/OSII几款典型的嵌入式操作系统介绍zhangsx@48几款典型的嵌入式操作系统介绍uC/OSIIWindows系列的嵌入式操作系统VxWorks嵌入式Linux几款典型的嵌入式操作系统介绍zhangsx@49VxWorks嵌入式实时操作系统VxWorks是风河(WindRiver)公司开发的一款商用硬实时操作系统支持主流的32位CPU,包括x86、68K、PowerPC、MIPS、ARM等基于微内核结构,由400多个相对独立的,短小精悍的目标模块组成,可裁剪性和可配置性相当出色几款典型的嵌入式操作系统介绍zhangsx@50VxWorks的评价Vxworks是一款非常出色的嵌入式实时操作系统,但是它是不公开源码的商业化操作系统,价格比较高为追求系统的实时性而设计的,并不是以通用OS为设计目标。去掉了一些OS模块,因为这些模块在某种程度上会影响系统的实时性(如在内存管理中没有采用页面管理模式,采用的是平板式内
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度危险品运输与安全装卸协议3篇
- 专业水泥购销协议规范版B版
- 二零二五年度电子商务平台建设与运营管理协议2篇
- 专项融资委托代理协议(2024版)版A版
- 个人借款抵押车复杂合同(2024版)2篇
- 二零二五年度城市综合体项目投资合作协议5篇
- 专业短视频摄制服务合同(2024年)3篇
- 2025年度生物制药研发与市场推广合作协议2篇
- 2025年度厂房物业管理与能源审计服务协议4篇
- 2025年度厂区生态景观绿化养护服务合同样本4篇
- 2024版个人私有房屋购买合同
- 2025年山东光明电力服务公司招聘笔试参考题库含答案解析
- 《神经发展障碍 儿童社交沟通障碍康复规范》
- 2025年中建六局二级子企业总经理岗位公开招聘高频重点提升(共500题)附带答案详解
- 2024年5月江苏省事业单位招聘考试【综合知识与能力素质】真题及答案解析(管理类和其他类)
- 注浆工安全技术措施
- 《食品与食品》课件
- 2024年世界职业院校技能大赛“食品安全与质量检测组”参考试题库(含答案)
- 读书分享会《白夜行》
- 2023上海高考英语词汇手册单词背诵默写表格(复习必背)
- 人民军队历史与优良传统(2024)学习通超星期末考试答案章节答案2024年
评论
0/150
提交评论