南邮-嵌入式期末-李超

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

友情提醒:1.本提纲仅适用于南京邮电大学李超老师的嵌入式系统开发课程。2.老师本人很认真地讲课,对于C语言和底层的讲述非常细致,如果可以请课堂仔细听讲,避免错过良师。3.实验课请动手,至少点亮LED灯!有问题请问老师!4.老师不会随便为难同学,请认真复习。根据提纲,作者期末获得97分。考试携带:1.教材2.带有答案的实验报告3.测试题和答案实验部分:离不开LED和看门狗的实验,仔细理解做起来很容易。考试题仅会是这两种程序的变种。而这两种程序老师课堂至少说5遍,哪怕认真听一遍也不可能做不出!最终声明:若有题型改变和书本变革,本提纲不负责任!嵌入式期末——理论部分CH1:1.嵌入式系统的定义、特点:定义:书P1:以系统为中心,以计算机技术为基础,软硬件可剪裁,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。特点:①微内核②专用性强③可裁剪④专用操作系统的支撑⑤专用的开发工具和环境2.嵌入式系统微处理器种类、典型代表:书P2:ARM微处理器,MIPS,68K/ColdFire、PowerPC举例列出一款ARM7TDMI微内核的嵌入式微处理器S3C44B0X,ARM920T微内核的嵌入式微处理器S3C2410,ARM11内核的嵌入式微处理器S3C6410,并列举2款64位ARM微内核Cortex-A53、Cortex-A57。3.嵌入式OS的种类及典型代表:书P7:VxWorks、RT-Linux、uClinux、ARM-Linux、WindowsPhone、iOS、Android4.开发模式书P10:宿主机——目标板模式了解基于ARM核的研究和商业运作模式。§企业运行的模式—chipless的生产模式§公司既不生产芯片,也不设计芯片,而是设计出高效的IP内核§全球有103家巨型IT公司在采用ARM技术,20家最大的半导体厂商中有19家是ARM的用户5.开发流程书P10流程图:CH2:1.ARM处理器的特点、构成特点:书P14:①体积小、功耗低、成本低、高性能。②支持Thumb(16位)/ARM(32/64位)双指令集,能够兼容8位和16位器件。③具有大量的寄存器,因而指令执行速度快。④绝大多数操作都在寄存器中进行,通过Load/Store的体系架构在内存和寄存器之间传递数据。⑤寻址方式简单。⑥采用固定长度的指令格式。ARM指令格式:(1)ARM汇编程序由机器指令、汇编指令和伪指令构成。(2)ARM伪指令可以分为以下几类:符号定义伪指令,数据定义伪指令,汇编控制伪指令,信息报告伪指令,宏指令以及其他伪指令。2.存储体系:大/小端模式书P20:大端模式:小端模式:测试题:假设存储数据0x12345678于ARM微处理器内存0X30000000开始的位置,则0X30000001内存位置的数据为C(A.0X12B.0X34C.0X56D.0X78)(采用小端模式进行存储)3.异常处理模式书P17:练习:一般情况下,ARM微处理器异常处理模式共有___7___种,机器启动后第一条指令执行的是__A___(A.复位异常处理函数指令B.中断异常处理指令C.IRQ异常处理指令D.指令预取终止异常)。4.传参原则书P30:调用函数FUN(X,Y,Z),则实参值分别通过r0、r1、r2寄存器来进行传递,如果参数超过4个,则参数传递规则为通过栈进行传递。5.R13、R14、R15的作用书P16:R13:用作堆栈指针R14:作用①:用户模式下,R14用做链接寄存器(LR),存放子程序被调用时的返回地址。作用②:异常处理模式下,R14用来保存异常的返回地址。R15:程序计数器,又被记做PC。由于ARM采用了流水线机制,因此PC的值为当前指令地址的值加8个字节,也就是说,PC指向当前指令的下两条指令的地址。CH3:1.S3C6410微处理架构2.软件操作、硬件方式非OS:端口寄存器(读、写)例子:端口的地址为0x7F008800。#definerGPKCON0(*((volatileint*)(0x7F008800)));rGPKCON0=0x55aa或(*((volatileint*)(0x7F008800)))=0x55aa;3.LED灯与看门狗(实验代码等见实验部分)看门狗的作用:书P37:系统软件或者应用软件都可能出错,导致整个系统无法继续正常工作,此时必须让整个系统重启以恢复其原有的功能,在S3C6410微处理器中集成的看门狗定时器就可以实现这个功能。CH4:1.交叉编译器核心部件gcc、make、gdb的安装。在PC机上Linux系统编译使用的编译器名为gcc,ARM处理器嵌入式编译器名为arm-linux-gcc。2.gcc的使用-o/-C/-l/-L/-I/-g/-O书P46:-o功能:制定目标名称,缺省的时候,gcc编译出来的文件是a.out例:arm-linux-gcc-ohello.exehello.c-c功能:只对文件进行编译和汇编,但是并不进行连接,也就是说只把程序做成obj文件。例:arm-linux-gcc-chello.c将生成.o的obj文件。-l,-I,-L-I:指定第一个寻找头文件的目录-L:指定第一个寻找库文件的目录-l:表示在库文件目录中寻找指定的动态库文件-g编译器在编译的时候产生调试信息。3.gdb操作步骤、常用命令。书P56:常用命令:(更多命令见P57)运行gdb调试程序时通常使用如下的命令:gdb文件名操作步骤:(1)运行程序在命令行上键入gdb并按回车键就可以运行gdb了,如果一切正常的话,gdb将被启动并且将在屏幕上看到类似的内容:GDBisfreesoftwareandyouarewelcometodistributecopiesofitundercertainconditions;typeshowcopyingtoseetheconditions.ThereisabsolutelynowarrantyforGDB;typeshowwarrantyfordetails.GDB4.14(i486-slakware-linux),Copyright1995FreeSoftwareFoundation,Inc.(gdb)当启动gdb后,可以在命令行上指定很多的选项。也可以以下面的方式来运行gdb:gdbfname当用这种方式运行gdb,程序员能直接指定想要调试的程序。这将告诉gdb装入名为fname的可执行文件。(2)设置/显示命令行参数设置命令行形式:setargsarglist显示命令行形式:showargs(3)程序运行相关命令…………gdb远程调试书P68:需要远程调试程序时,首先要对你需要进行远程调试的程序做一些改造,在程序的开始插入set_debug_traps()和break_point()函数,然后重新编译,并且将GDBStub,你的程序,还有串口驱动程序等能一起连接在一起成为新的可执行程序,将它的一份拷贝到远程主机上。然后按照如下的步骤:将两台机器用串口线连接起来将需要调试的程序拷贝到远程主机在本地主机启动GDB,读入需要调试的程序的符号表和程序代码使用targetremote命令建立和远程主机的连接然后就像和使用一般的GDB一样进行程序的调试了。4.Code::Blocks作用和基本操作书P68:作用:Code::Blocks是一个开放源码的全功能的跨平台C/C++集成开发环境。Code::Blocks是开放源码软件。Code::Blocks由纯粹的C++语言开发完成。基本操作:见书(P69-P77)完整流程。CH5:1.嵌入式Linux系统核心部件嵌入式Linux操作系统包括bootloader、内核、文件系统三部分组成。2.bootloader的功能、种类bootloader的功能:①引导操作系统内核启动②提供辅助命令工具。常见bootloader:redboot、lilo、uboot、grub、etherboot、vivi。3.U-boot常用命令书P82:复习题:在uboot中,打印开发板上环境变量值的命令为printenv,设置IP地址为192.168.1.1的命令为setenvipaddr192.168.1.1,假如嵌入式内核名为vmlinux,通过tftp加载内核的命令为tftpvmlinux内存地址,启动嵌入式Linux内核的命令为bootm。其他命令:参考教材。4.bootloader、内核、文件系统构建步骤嵌入式Linux内核裁剪命令为makemenuconfig;裁剪完成后生成配置选择文件.config;编译内核命令为makezImage。构建嵌入式Linux系统时,烧写bootloader的工具为hjtag;烧写Linux内核一般使用A(A.bootloaderB.文件系统C.交叉编译器)来烧写,烧写文件系统一般使用A(A.bootloaderB.文件系统C.交叉编译器)来烧写。从C语言角度来理解,嵌入式Linux内核仅是众多函数的集合体,其有一个类似于main的函数,名称为start_kernel。启动linux后常用的命令如ifconfig、cp、ls等通常位于C(A.bootloaderB.内核C.文件系统)中;嵌入式Linux环境下生成文件系统的常用工具为mkyaffs2img;以yaffs方法为例,将嵌入式文件夹压缩成一个yaffs2格式的文件系统命令为mkyaffs2img文件夹镜像文件名。具体内容见实验部分。CH6:1.开发板和PC机传输文件的方式2.移植步骤:configure、make、makeinstall嵌入式Linux应用程序移植常用configure命令生成Makefile,一般来说,指定安装目录为/opt/soft的命令为./configure--prefix=/opt/soft;如果待生成的可执行目标板为ARM处理器,则命令为./configure--prefix=/opt/soft--HOST=arm-linux。其余内容见实验部分或书P1023.Sqlite命令使用方式书P105:sqlite操作的基本步骤包括:打开数据库执行相关操作,如插入记录、删除记录、查询等关闭数据库(1)打开数据库函数原型:intsqlite3_open(constchar*filename,sqlite3**ppDb);filename:待打开(创建)的数据库文件名;ppDb:sqlite3数据库句柄的指针(2)操作数据库sqlite可以提供了接口,可以把SQL操作语句直接嵌入到sqlite函数中来执行。函数原型:intsqlite3_exec(sqlite3*ppDb,constchar*sql,int(*callback)(void*,int,char**,char**),void*,char**errmsg);第1个参数是open函数得到的指针。第2个参数constchar*sql是一条sql语句,以\0结尾。第3个参数sqlite3_callback是回调,当这条语句执行之后,sqlite3会去调用这个函数。第4个参数void*是你所提供的指针,你可以传递任何一个指针参数到这里,这个参数最终会传到回调函数里面,如果不需要传递指针给回调函数,可以填NULL。等下我们再看回调函数的写法,以及这个参数的使用。第5个参数char**errmsg是错误信息。(3)关闭数据库数据库不使用后需要关闭。函数原型:intsqlite3_close(sqlite3*ppDb);测试题:嵌入式数据库经常使用sqlite,为可以在开发板上运行的轻型数库。通常情况下sqlite提供命令和函数编程两种使用方式。在sqlite下创建数据库stu.db命令为sqlite3stu.db;创建包含学号,姓名和电话号码的数据表StuPhone命令为createtableStuPhone(idintegerprimarykey,nametext,phoneNotext);;插入10010201,wangming,13900

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功