嵌入式实训总结_第1页
嵌入式实训总结_第2页
嵌入式实训总结_第3页
嵌入式实训总结_第4页
嵌入式实训总结_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实训总结ARM体系结构主要内容(1) ARM简介(2) ARM处理器模式(3) ARM的寄存器 (4) ARM的异常(5) 存储器I/O参考资料详细内容参加ARM体系结构PPT。RealView的使用安装破解详细过程1. 将虚拟iso文件解压缩(或者用虚拟光驱装载),双击setup.exe进行安装2. 安装即将结束的时候,会出现一个窗口,上面有“下一步”按钮3. 此时,将rvds4cr.crack文件夹的内容,拷贝到C:Program FilesARM文件夹4. 开始运行输入cmd,点击确定5. 输入ipconfig/all,并回车6. 记下“本地连接”的Physical Address,例如

2、00-25-3D-5B-7C7. 将C:Program FilesARM下的rvds.dat以记事本方式打开8. 将“HOSTID=”后的字符串替换为6中找到的Physical Address, 不要横杠。9. 保存关闭。10. 在2中的窗口内点击下一步,之后点击“.”按钮,选择好rvds.dat之后,点击Add按钮,点击两次(或一次)“是”之后继续安装。11. 最后运行C:Program FilesARM下的Crack.bat(齿轮)IDE的使用开始程序ARMARM Workbench IDE v4.0启动RealViewIDEFileNewRealview Project输入Project

3、Name点击下一步,调试和发行都选中,点击下一步,不需要选择Targets,直接点击下一步,体系结构选择Cortex-A8,其他不用改变,点击下一步,再点击下一步,之后选择Finish,即可创建一个RealView工程。在工程上点击右键可以添加文件夹(例如src),也可以添加文件,注意汇编文件扩展名为.s,C语言文件为.c。汇编语言的例子和C语言的例子见“ARM汇编语言实验”压缩包。调试方法首先编译工程(ProjectBuildAll),之后点击菜单栏的Debug按钮(虫子样子),选择加载到RealView Debugger中,即可开始调试。点击Step in按钮,即可单步跳入,点击Step

4、over按钮即可过程调试。有可能需要查看Register的内容,这时需要点击View菜单下的Register项,打开寄存器查看窗口。指令集常用指令集见参考资料“ARM指令集详解”。ARM与C语言混合编程共有四种混合编程方式,详细信息可以参考资料“ARM中C语言和汇编语言混合编程”中的内容。串口通信方法串口的基本概念,串口通信的方式,通信的数据包格式等。详细内容请参考“串口通信”PPT。烧写板子的方法由于各个开发板的使用方法并不相同,因此需要参考用户手册。一般使用过程为:1. 调至NorFlash方式启动,连接超级终端。根据超级终端中的选项,选择操作2. 格式化NandFlash对于Linux系

5、统3. 选择下载bootloader,可能会使用到DNW,注意按照手册安装usb驱动4. 选择下载操作系统内核5. 选择下载根文件系统6. 选择下载Logo对于WinCE系统3. 选择下载Bootloader或者STEPLDR4. 下载EBoot到NandFlash5. 调到NandFlash,并在开机时按空格键6. 选择下载WinCE的镜像文件QT程序编写环境的安装1. 解压缩交叉编译器(EABI),tar xvfj EABI.tar.bz2 C /2. 用gedit /etc/profile 添加一条pathmunge,详细请参见手册3. 解压缩qt-embedded-opensource

6、tar.bz2,tar xvfj qt-embedded.tar.bz2 C /7. 进入/opt/EmbedSky/qt-4.5下,./arm_qt4.5_build进行安装,需要大约1小时进行安装,之后使用source setARM_Env来设置环境变量。8. qt-x11的安装:a) 从ftp:/b) 解压缩tar xvzf qt-x11-opensource-src-4.5.3.tar.gz -C /c) 进入解压后的qt目录(qt-x11-opensource-src-4.5.3),运行命令./configure -qvfb -prefix /opt/qt-x11-4.5.3i) -

7、qvfb参数说明需要编译qvfb设备ii) -prefix /opt/Qt-x11-4.5.3为改变安装安装目录d) 运行命令gmakee) 运行gmake install,大约需要1小时左右f) gedit /etc/profile打开profile文件,在该文件的最末尾加上以下语句:export PATH=/opt/qt-x11-4.5.3/bin:$PATHexport QTDIR=/opt/qt-x11-4.5.3export MANPATH=/opt/qt-x11-4.5.3/man:$MANPATHexport LD_LIBRARY_PATH=/opt/qt-x11-4.5.3/l

8、ib:$LD_LIBRARY_PATHexport QMAKESPEC=/opt/qt-x11-4.5.3/mkspecs/linux-g+g) 注销重新登陆h) 编译qvfb # cd /qt-x11-opensource-src-4.5.3/tools/qvfb/ # make9. Qtcreator的安装是图形化的,下一步即可,安装好后,打开QtCreator后,依次点击菜单Tools-Options-Qt4-QtVersion,之后需要设置编译器的路径,可参考手册设置。QT工程创建1. 打开QtCreator,点击File-new File or Project2. 选择Qt4 Gui

9、 Application点击Ok3. Name中填入项目名称,可任取;Create in中填入目录,可用Browse按钮选择一个路径,点击Ok4. Required Modules中按需求选取,如果不需要可以不用选取,点击Next5. Classname中填入类名,可任取;Base Class中选择QWidget,或根据需要选择其他,单击Next按钮继续6. 点击Finish完成创建项目QT程序编写1. 在工程窗口中的Forms文件夹下,有至少一个.ui文件,是界面设计文件2. 双击这个.ui文件,可以在右侧的窗体上添加按钮等控件3. 可以修改控件的objName,Text等属性,注意,obj

10、Name是程序中用的名字,而Text是显示给用户的4. 在按钮等控件上单击右键,点击Go to slot,可以添加槽函数,可以根据自己需要选择信号和槽函数5. 实现槽函数,完成需要的功能,例如响应用户按键信息等QT示例程序更多的示例程序请参见压缩包“qtshili”QT与硬件编程硬件编程最关键的是应用驱动程序。首先需要编写硬件驱动程序,或者利用已有的驱动进行QT程序编写。因此,需要仔细参阅驱动程序文档,认真查看每个函数各个参数的含义。开发硬件相关QT程序流程:1. 添加fcntl.h、unistd.h和sys/ioctl.h三个头文件2. 添加一个private变量,例如int fd;3. 一

11、般在构造函数中,使用open函数打开设备并存下设备标识符,如fd=open(“/dev/PWM-Test”, O_RDWR); O_RDWR是一种设备读取的方法,此处也可以为只读(O_RDONLY),只写(O_WRONLY),或者可读可写(O_RDWR)等4. 可用ioctl函数操作设备,进行IO操作,也可用read函数进行读取,write函数进行写入,需要根据具体应用确定5. 在析构函数中加入:close(fd); 关闭设备,这样在程序结束的时候自动关闭设备6. 注意,如果需要判断设备是否可用,可以用if语句判断fd >= 0,例如在关闭设备时,经常需要这个操作,即,if (fd &g

12、t;= 0) :close(fd); 硬件编程示例程序示例程序见压缩包“apps”嵌入式移植Bootloader移植1. 解压缩uboot源代码,例如tar xvfj uboot-1.1.6.tar.bz2 C /2. 在uboot目录下修改一些文件,并添加支持自己的板子的源代码,天嵌的uboot已经改好,我们不需要自己修改3. 在uboot目录下执行make EmbedSky,配置uboot使它适用于我们的板子4. 执行make进行编译,编译出uboot.bin文件即可烧录Bootloader重要文件及函数文件名start.Sboard.cmain.c函数名_startstart_armbo

13、ot()main_loop()添加新的命令1. include/cmd_confdefs.h中需要添加一个自定义命令的宏定义,例如#define CFG_CMD_HELLOWORLD0x8000000000000000ULL2. 在common文件夹下创建一个命令的源码文件,如cmd_helloworld.c3. 编写命令源码文件内容,可以参照cmd_cache.c等4. 在include/configs/EmbedSky.h中的CONFIG_COMMANDS宏定义的最后一个元素,括号前加入| 添加刚才在cmd_confdefs.h中定义的宏,如添加CFG_CMD_HELLOWORLD以使能命

14、令5. 重新编译uboot即可使用新命令添加命令的菜单栏显示1. 打开common/cmd_menu.c文件,找到main_menu_usage函数,在printf("Enter your selection: ");前面加入自己的printf,例如printf(“h Helloworld command”);2. 找到menu_shell函数,在case Q: caseq 之后添加自己的case H: case h: 3. 括号 中填写run_command(“Helloworld”, 0); 即可内核移植1. 使用命令tar xvfj linux-.ta

15、r.bz2 C / 对内核进行解压缩2. 在内核目录下,输入make menuconfig ARCH=arm CROSS_CMPILE=arm-linux-打开配置页面内核的配置3. 可用load an alternate file加入一个已经配置好的文件4. 可使用键盘方向键和空格、Y、N、M对其中选项进行勾选和清除5. 配置好后,在顶级菜单中选择Save an alternate,并将文件保存为.config文件6. 退出编译内核使用make zImage即可编译内核,会花费一些时间,编译好的内核可通过超级终端及DNW烧写到板子中。详细信息更多的详细信息,请参考开发版的移植手册。根文件系统

16、移植1. 文件系统移植需要工具BusyBox,需要先解压缩并编译BusyBos,使用命令tar xvfj busyboxtar.bz2 C / 进行解压缩2. 之后使用命令make menuconfig ARCH=arm CROSS_CMPILE=arm-linux- 对BusyBox进行配置,并用Save选项保存配置,名字任意3. 之后使用make命令进行编译4. 使用make install命令进行安装,会生成一个_install文件夹5. 建立一个自己的文件夹,名为root-(可任取)6. 将_install文件夹全部内容拷贝到自己的root-文件夹下7.

17、 添加一系列目录(文件夹),详细请参考开发板移植手册8. 将一些必要的配置文件加入上述文件夹中9. 进入root-的上级目录,输入命令mkyaffs2image root- roor.bin即可生成根文件系统10. 可将自己的根文件系统烧写到板子上进行测试驱动程序的移植1. 编写驱动程序的源文件,如helloworld.c,并添加到内核源码(内核移植中解压缩出的)的相应目录下,例如,字符设备需要添加到drivers/char/2. 修改drivers/char/中的Kconfig,在menu “Character devices”,后面加入一个菜单项,如conf

18、ig HELLOWORLDtristate “Helloworld driver”depends on ARCH_S3C24403. 修改drivers/char/中的Makefile文件加入目标文件,如obj-$(CONFIG_ HELLOWORLD) += helloworld.o,注意文件名字的大小写4. 使用make menuconfig ARCH=arm CROSS_CMPILE=arm-linux-配置内核,在Drivers菜单项下的Character Devices下会出现Helloworld驱动程序,用键盘M按键选中5. 在内核源码目录下使用命令 make SUBDIR=drivers/char/ modules对驱动模块进行编译,会在drivers/char/生成helloworld.ko文件6. 通过超级终端发送到板子上,即可使用insmod命令加载,如insmod helloworld.ko7. 可以使用rmmod命令卸载驱动,如rmmod helloworld.ko项目嵌入式电子书设计程序解释见源码注释。可能问的问题:1. 程序如何运行?程序首先运行的是mian函数,由main函

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论