嵌入式系统与设计课程报告

发布 2022-10-21 08:29:28 阅读 3612

研究背景:嵌入式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编译程序时,编译过程可以被细分为四个阶段: 假设需要编译的文件为 则这几个阶段可以通过以下几个命令实现:

预处理(pre-processing)

使用-e参数可以让gcc在预处理结束后停止编译过程:

# gcc -e -o

编译(compiling)

下一步是将编译为目标**,这可以通过使用-c参数来完成:

# gcc -x cpp-output –c -o

或者 # gcc -c -o

汇编(assembling)

链接(linking)

# gcc -o hello

汇编应该调用as,这里应该是一起完成了。

gdb调试器使用流程:

假设已编辑好的文件在保存退出后首先使用gcc对进行编译,注意一定要加上选项”-g”, gcc -g -o test,这样编译出的可执行**中才包含调试信息,否则之后gdb无法载入该可执行文件。

# gdb test

可以看出,在gdb的启动画面中指出了gdb的版本号、使用的库文件等信息,接下来就进入了由“(gdb)”开头的命令行界面了。

1)查看文件。

在gdb中键入”l”(list)就可以查看所载入的文件。

2)设置断点。

设置断点是调试程序中是一个非常重要的手段,它可以使程序到一定位置暂停它的运行。因此,程序员在该位置处可以方便地查看变量的值、堆栈情况等,从而找出**的症结所在。

gdb) b 6

breakpoint 1 at 0x804846d: file 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/ 将root删除或者注释。

#vi /etc/ 同样将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.

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驱动要求的内核相匹配。

嵌入式linux与嵌入式系统设计

ustc bbs embedded斑竹d j主讲。感谢hongtao chen以及networking斑竹jun zxjun的大量幕后工作!感谢james zhang以及网络中心提供聚会的场地和大力支持!欢迎访问我的主页。聚会详情如下 名称 嵌入式系统设计以及嵌入式linux展望 时间 本周星期天 ...

嵌入式嵌入式系统原理与设计

第六章 iic总线。一 iic总线介绍 i2c总线 1.结构。2.工作原理 a b 主机 主设备 负责生成scl时钟,同时负责发出其实信号s和终止信号p 从机 从设备 被主机寻址的器件。1 a检测i2c总线是否 空闲 如果空闲 高 a发出起始信号 scl高,sda 2 寻址选择目标器件b,发送7位地...

嵌入式嵌入式系统原理与设计

课前提问 xscale 内核,intel公司。arm7 内核,第七个版本。armv5te 指令集,v5版本,加入16位thumb指令集,加入dsp指令集。cortex m3 内核,arm公司,arm11之后开始以cortex命名 5.几款arm处理器内核比较 arm11比arm10主频高,能耗低,所...