已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式系统与设计课程报告研究背景:嵌入式linux 是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。嵌入式linux既继承了Internet上无限的开放源代码资源,又具有嵌入式操作系统的特性。嵌入式Linux的特点是版权费免费;购买费用媒介成本技术支持全世界的自由软件开发者提供支持网络特性免费,而且性能优异,软件移植容易,代码开放,有许多应用软件支持,应用产品开发周期短,新产品上市迅速,因为有许多公开的代码可以参考和移植,实时性能RT_Linux Hardhat Linux 等嵌入式Linux支持,实时性能稳定性好安全性好。本课程所学内容:包括linux 命令和编辑、编译、调试工具;windows 和 linux系统之间文件共享的三种方法;makefile 文件编写;Tiny6410开发板的介绍;利用Qt软件编译程序,并烧写入开发板实现一些画图功能。一、linux命令以及编辑、编译、调试工具 首先安装虚拟机VMware,在虚拟机上安装Red Flag 版本的linux 操作系统。一些常用的linux命令有:ls查看列表,cd 切换目录,mkdir 创建目录,pwd 显示当前路径,cp 复制,mv 剪切,chmod 切换用户,diff 比较文件的不同,tar文件打包,gzip 压缩,ifconfig 设置网络属性等。当然每个命令都会结合一些参数使用,实现不一样的功能。 VI 编辑器 : VI 编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下。由于不需要图形界面,使它成了效率很高的文本编辑器。尽管在Linux上也有很多图形界面的编辑器可用,但VI在系统和服务器管理中的能是那些图形编辑器所无法比拟的。VI 编辑器是Visual interface的简称,通常称之为VI。它在Linux上的地位就像Edit程序在DOS上一样。它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。 vi的基本概念:基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)、底行模式(last line mode) 不过一般我们在使用时把vi简化成两个模式,就是将底行模式(last line mode)也算入命令行模式command mode)。 vi的基本操作:在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面:在命令行模式(command mode)下按一下字母i就可以进入插入模式(Insert mode),这时候就可以开始输入文字了。 命令行模式下保存并退出:输入ZZ ;在命令行模式(command mode)下,按一下:冒号键进入Last line mode,: wq (存盘并退出vi),: q! (输入q!不存盘强制退出vi),:x (执行保存并退出vi编辑器)。GCC编译器: 使用GCC编译程序时,编译过程可以被细分为四个阶段: 假设需要编译的文件为hello.c, 则这几个阶段可以通过以下几个命令实现: 预处理(Pre-Processing)使用-E参数可以让GCC在预处理结束后停止编译过程:# gcc -E hello.c -o hello.i 编译(Compiling)下一步是将hello.i编译为目标代码,这可以通过使用-c参数来完成:# gcc -x cpp-output c hello.i -o hello.o或者 # gcc -c hello.i -o hello.o 汇编(Assembling) 链接(Linking)# gcc hello.o -o hello汇编应该调用as,这里应该是一起完成了GDB调试器使用流程:假设已编辑好的文件test.c,在保存退出后首先使用Gcc对test.c进行编译,注意一定要加上选项”-g”, gcc -g test.c -o test,这样编译出的可执行代码中才包含调试信息,否则之后Gdb无法载入该可执行文件。# gdb test可以看出,在Gdb的启动画面中指出了Gdb的版本号、使用的库文件等信息,接下来就进入了由“(gdb)”开头的命令行界面了。(1)查看文件在Gdb中键入”l”(list)就可以查看所载入的文件。(2)设置断点设置断点是调试程序中是一个非常重要的手段,它可以使程序到一定位置暂停它的运行。因此,程序员在该位置处可以方便地查看变量的值、堆栈情况等,从而找出代码的症结所在。(Gdb) b 6Breakpoint 1 at 0x804846d: file test.c, line 6.(3)查看断点情况在设置完断点之后,用户可以键入”info b”来查看设置断点情况,在Gdb中可以设置多个断点。(Gdb) info b(4)运行代码接下来就可运行代码了,Gdb默认从首行开始运行代码,可键入”r”(run)即可(若想从程序中指定行开始运行,可在r后面加上行号)。(Gdb) r(5)查看变量值在程序停止运行之后,程序员所要做的工作是查看断点处的相关变量值。在Gdb中只需键入”p”变量值即可,(Gdb) p n(6)单步运行单步运行可以使用命令”n”(next)或”s”(step),它们之间的区别在于:若有函数调用的时候,”s”会进入该函数而”n”不会进入该函数。因此,”s”就类似于VC等工具中的”step in”,”n”类似与VC等工具中的”step over”(7)恢复程序运行在查看完所需变量及堆栈情况后,就可以使用命令”c”(continue)恢复程序的正常运行了。这时,它会把剩余还未执行的程序执行完,并显示剩余程序中的执行结果。二、windows 和 linux系统之间文件共享的三种方法(1)利用移动设备直接拷贝。(2)FTP进行数据共享,一般安装linux系统会安装FTP服务。首先检查是否启动FTP服务#ftp localhost 如果提示输入用户名则已经启动如果提示connection refused则没有启动启动FTP服务#service vsftpd start如果需要用root用户来上传文件(一般不这么做)需要修改配置#vi /etc/vsftpd.ftpusers 将root删除或者注释#vi /etc/vsftpd.user_list 同样将root删除或者注释最后只需要在windows上装上FTP客户端即可(3)安装Vmware Tools选择虚拟机上的菜单选项VM-settings-Options-Shared Folders-Always enables 点击add选择windows上目录,切换回linux 执行命令:#cd /mnt/hgfs/共享文件在此目录下。三、makefile 文件编写makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。makefile带来的好处就是“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C+的nmake,Linux下GNU的make。可见,makefile都成为了一种在工程方面的编译方法。Makefile 的规则:target . : prerequisites . command . . target也就是一个目标文件,可以是 Object File,也可以是执行文件,还可以是一个标签(Label)。prerequisites就是,要生成那个 target所需要的文件或是目标。command 也就是make 需要执行的命令。(任意的 Shell命令)这是一个文件的依赖关系,也就是说,target 这一个或多个的目标文件依赖于prerequisites 中的文件,其生成规则定义在 command 中。说白一点就是说, prerequisites 中如果有一个以上的文件比 target 文件要新的话,command 所定义的命令就会被执行。这就是Makefile 的规则,也就是Makefile中最核心的内容。四、Tiny6410开发板的介绍Tiny6410是一款以ARM11芯片(三星S3C6410)作为主处理器的嵌入式核心板,该CPU基于ARM1176JZF-S核设计,内部集成了强大的多媒体处理单元,支持Mpeg4, H.264/H.263等格式的视频文件硬件编解码,可同时输出至LCD和TV显示;它还并带有3D图形硬件加速器,以实现OpenGL ES 1.1 & 2.0加速渲染,另外它还支持2D图形图像的平滑缩放,翻转等操作。 Tiny6410采用高密度6层板设计,尺寸为64 x 50mm,它集成了128M DDR RAM,256M/1GB SLC Nand Flash存储器,采用5V供电,在板实现CPU必需的各种核心电压转换,还带有专业复位芯片,通过2.0mm间距的排针,引出各种常见的接口资源,以供不打算自行设计CPU板的开发者进行快捷的二次开发使用。 Tiny6410SDK是采用Tiny6410核心板的一款参考设计底板,它主要帮助开发者以此为参考进行核心板的功能验证以及扩展开发。该底板具有三LCD接口、4线电阻触摸屏接口、100M标准网络接口、标准DB9五线串口、Mini USB 2.0接口、USB Host 1.1、3.5mm音频输入输出口、标准TV-OUT接口、SD卡座、红外接收等常用接口;另外还引出4路TTL串口,另1路TV-OUT、SDIO2接口(可接SD WiFi)接口等;在板的还有蜂鸣器、I2C-EEPROM、备份电池、AD可调电阻、8个中断式按键等。 在布局上安排上,我们尽量考虑把常用尺寸的LCD模块能够固定在底板上,比如3.5”,4.3”LCD, 7”LCD等,这样用户在使用时不至于把各种电线搅在一起,更增加了开发套件的便携性。Tiny 6410五、Qt软件以及往开发板烧写程序在学习Qt之前,我们在虚拟机里重新装了一个linux版本,Fedora 9,内核为2.6.28,之所以选择Fedora9系统主要是因为:fedora9的系统内核和Tiny6410驱动要求的内核相匹配。 首先是下载安装Qt Creator, 运行Qt Creator,首先弹出的是欢迎界面,这里可以打开其自带的各种演示程序。File-New菜单来新建工程,这里我们选择Qt C+ Project 和Qt4 Gui Application,然后点Choose,下面输入工程名和要保存到的文件夹路径。我们这里的工程名为painter01,文件路径为/home/MFwork/STD/stdpainter/painter01,然后点击next,这时软件自动添加基本的头文件,因为这个程序我们不需要其他的功能,所以直接点击Next,我们将base class选为QDialog对话框类。然后点击Next。点击Finish,完成工程的建立。(1)建立工程painter01,如上,(2)在dialog.h文件中声明重绘事件函数void paintEvent(QPaintEvent *);(3)在dialog.cpp中添加绘图类QPainter的头文件包含#include (4)在下面进行该函数的重定义。void Dialog:paintEvent(QPaintEvent *)QPainter painter(this);painter.drawLine(0,0,100,100);其中创建了QPainter类对象,它是用来进行绘制图形的,我们这里画了一条线Line,其中的参数为线的起点(0,0),和终点(100,100)。这里的数值指的是像素,这里(0,0)点指的是窗口的左上角即可。运行效果如下:实现了画线函数之后,更改void Dialog:paintEvent(QPaintEvent *)函数的内容如下,void Dialog:paintEvent(QPaintEvent *)QPainter painter(this);QLinearGradient linearGradient(100,150,300,150);/从点(100,150)开始到点(300,150)结束,确定一条直线 linearGradient.setColorAt(0,Qt:red);linearGradient.setColorAt(0.2,Qt:black);linearGradient.setColorAt(0.4,Qt:yellow);linearGradient.setColorAt(0.6,Qt:white);linearGradient.setColorAt(0.8,Qt:green); linearGradient.setColorAt(1,Qt:blue); /将直线开始点设为0,终点设为1,然后分段设置颜色 painter.setBrush(linearGradient); painter.drawRect(100,100,200,100); /绘制矩形,线性渐变线正好在矩形的水平中心线上效果如下:在本机编译运行时,Build Settings中的Edit build configuration选项选择QT in PATH Debug,若把编译好的程序烧入Tiny 6410 开发板,编译时则选择4.7.0Debug 。开发板系统烧写:开发板支持两种烧写
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026山东济南南美水务有限公司招聘4人笔试参考题库及答案详解
- 2026中城院 (北京) 环境科技股份有限公司国际事业部经营经理岗位招聘1人笔试备考题库及答案详解
- 2026中国铁建纪委办案中心社会招聘13人笔试模拟试题及答案详解
- 企业与供应商合作协议管理流程
- 高铁乘务安全责任协议
- 2026浙江宁波市余姚市阳明街道办事处招聘编外人员4人笔试备考试题及答案详解
- 2026重庆人工智能学院非事业编人员招聘12人(第三批)笔试参考题库及答案详解
- 早熟禾属牧草种质资源评价鉴定技术规程-编制说明
- 2026云南迪庆州维西县国有林场编外专职森林草原管护人员招聘1人笔试模拟试题及答案详解
- 2026年龙井市面向委培生、定向生公开招聘委培定向生专项安置人员笔试备考试题及答案详解
- 四川省凉山州2025年中考物理真题附同步解析
- 人大强基考试试题及答案
- 心理健康课题中期报告范文
- 2025年重庆市中考生物试卷真题(含标准答案)
- DB32T 5124.3-2025 临床护理技术规范 第3部分:成人危重症患者有创动脉血压监测
- T-FDSCX 002-2024 福鼎白茶标准
- 中外航海文化知到课后答案智慧树章节测试答案2025年春中国人民解放军海军大连舰艇学院
- 【高考真题(含答案)】安徽省新高考2024年化学试卷(含答案)
- 《SPIN销售法精髓》课件
- 电信生产安全事故案例分析(新版.)
- 律师事务所开拓客户培训
评论
0/150
提交评论