1、嵌入式驱动程序开发II主讲:谭石坚课程介绍n 任课老师u谭石坚(大课、小课)Email:tsj n 嵌入式驱动程序开发II(LD4001)u性质:(嵌入式系统开发)必修课u学分:4(大课2学分、小课2学分)u考核方式:考试(闭卷)n 总评成绩u考勤:10%,即10分u平时成绩:20%,即20分实验:11分测试:6分平时作业:3分u考试成绩:70%,即70分课程介绍n 课件及资料下载u地 址:ftp:/172.16.3.240u用户名:kjdown u密 码:kjdownu目 录:电子系/谭石坚/n 学习要求u大课:按时上课,认真听讲u小课:结合大课理论,完成课堂实验u完成课外作业u养成自主学习
2、的意识课程介绍n 涉及的相关知识点uC语言,实验课将全程使用u数据结构,建议巩固加强uARM编程u驱动程序开发等n 教学管理及几点建议u坚持参加上课,学习态度积分管理,包括课堂、作业、考勤等。课程介绍n 每周答疑时间u周二14:30-17:00u周三 14:00-15:30课程介绍n 教材u嵌入式应用项目设计与开发典型案例详解熊茂华,熊昕,钟锦辉编著n 参考书籍u嵌入式Linux系统应用及项目实践.丰海 机械工业出版社。uARM嵌入式项目实战开发(十二五)课程介绍n 课程目标u本课程以两个项目两个项目为教学内容,介绍嵌入式linux开发的方方面面,主要教学目标是:u掌握构建嵌入式linux系统
3、的方法u掌握一个嵌入式linux项目技术开发的方方面面课程介绍n 构建嵌入式linux系统ubootloader程序设计GNU-ARM裸奔,bootloader程序架构,u-boot移植u内核移植网口驱动移植,ts驱动,LCD驱动,按键驱动u根文件系统库,启动脚本等n 嵌入式mp3播放器项目umad库的移植与使用uqt程序设计n 复习构建嵌入式linux系统项目介绍n 使用开源的软件构建基于S3C2410的嵌入式linux系统。u项目的硬件平台是FS2410开发板(或S3C2440)。u项目的软件(系统软件,应用软件)由开源的软件构建而成。gnu交叉编译器u-bootlinux内核busybo
4、x等u这些软件都是开源的,也就是说我们利用网络下载这些开源软件,利用这些开源软件来构建一个linux系统项目介绍n linux系统的层次结构u本项目的软件平台是由linux内核等多个开源软件构成的自定义系统项目介绍bootloaderrootfsKernelextfsNandload.binUboot.binUboot_2410源码uboot源码Kernel硬件手册2.6源码Rootfs.imgRootfsBusybox系统文件(etc、dev)Sjf2410.exeJtag板Cross-compilerBinutilsCross.tar.bz2GccGlibc2.6_2410patchRoo
5、tfs.imgmkfs工具分区1 bootloader 分区2 内核分区3 系统软件 分区结构项目介绍n 从上面的分区图,可以看出嵌入式linux系统的组成:ubootloaderbootloader是一个统称,指的是在内核启动前运行的一小段代码。ulinux内核操作系统内核u根文件系统(系统工具)用户使用时,必要的工具。项目介绍n 启动流程u上电运行bootloaderubootloader启动内核u内核启动第一个应用程序(init)uinit程序配置环境,启动交互程序制作交叉编译器为什么要制作交叉编译器n 系统软件中的bootloader,内核,应用程序等都需要交叉编译,这就要求我们首先要
6、有一个交叉编译器。n 怎样得到这个交叉编译器呢?u别人提供买开发板的时候,开发板厂商提供网上下载u自己制作n 作为学习学习,可以自己制作一个交叉编译器交叉编译器n gnu-arm交叉编译器的下载网站uhttps:/ n gnu是一个开源的项目,因此gnu提供的编译器gcc也是开放源码的,这些源码都可以从ftp.gnu.org上获取,源码分成三部分,如下:ubinutils:提供二进制处理的工具ugcc:提供强大的gcc编译器uglibc:提供标准C库。n 我们可以利用这些源码来制作交叉编译器。n 交叉编译器的制作制作步骤非常繁琐非常繁琐,因此有让将交叉编译器制作的步骤做成脚本,叫crossto
7、ol,后来这个脚本越来越完善升级为crosstool-ng。编 译 binutils源 码 包第 一 次 编 译 gcc源 码 包编 译 glibc源 码 包编 译 完 整 的 gcc交叉编译器制作n crosstool-ng的官网:http:/crosstool-ng.org/n 其宗旨就是:让交叉编译器的制作,更加简单,让制作交叉编译器的工具,更加好用。n crosstool-ng的特点u支持(类似于Linux内核配置的那个)menuconfigu支持足够多,且越来越多的架构(architecture)u支持工具链中可选多种不同的C库等模块u支持不同目标OS平台u补丁仓库u支持不同的线程模
8、型u支持软浮点和硬件浮点u支持众多调试相关的内容交叉编译器制作n crosstool-ng的使用的基本逻辑u下载,编译,安装crosstool-ng工具本身u用crosstool-ng这个工具(即ct-ng)去制作(配置和编译)所需要的交叉编译器下载和安装crosstool-ngn 在使用crosstool-ng,为我们制作交叉编译器之前,需要下载crosstool-ng的源码,并且编译安装crosstool-ng,到我们的当前的(Linux或Cygwin等)系统中n 去crosstool-ng的下载页面:uhttp:/crosstool-ng.org/download/crosstool-n
9、g/中,下载最新版的crosstool-ng。u截至本文此刻,最新版本是:crosstool-ng-1.19.0.tar.bz2crosstool-ng-1.19.0.tar.bz2下载和安装crosstool-ngn 安装crosstool-ngucrosstool-ng工具的源码下载了,安装这个工具的步骤很简单,如下:tar jxvf/mnt/hgfs/D/crosstool-ng-1.19.0.tar.bz2./configure-prefix=/home/sice/crosstool-ng/home/sice/crosstool-ngmakemake installu安装完之后,cro
10、sstool-ng的工具命令只有一个home/sice/crosstool-ng/bin/ct-nghome/sice/crosstool-ng/bin/ct-ng安装路径使用ct-ng工具制作交叉编译器n 用ct-ng help查看所拥有的功能$/home/sice/crosstool-ng/bin/ct-ng help/home/sice/crosstool-ng/bin/ct-ng helpn 查看当前有哪些(默认的)示例配置,可以用$/home/sice/crosstool-ng/bin/ct-ng list-samples/home/sice/crosstool-ng/bin/ct-
11、ng list-samples使用ct-ng工具制作交叉编译器n ct-ng工具安装好后,我们开始使用ct-ng工具制作交叉编译器,开始工作之前,我们新建一个工作目录,并在这个工作目录下操作:mkdir buildcd buildu先进行交叉编译器的配置,首先配置成默认$/home/sice/crosstool-ng/bin/ct-ng arm-unknown-linux-gnueabiu配置好后,可以查看当前配置的制作交叉编译器步骤$/home/sice/crosstool-ng/bin/ct-ng list-steps使用ct-ng工具制作交叉编译器n 在默认的配置基础上进行配置:$/ho
12、me/sice/crosstool-ng/bin/ct-ng menuconfig$/home/sice/crosstool-ng/bin/ct-ng menuconfig在配置菜单中,可以选择交叉编译器的版本等配置如下Paths and misc options -($HOME/sources)Local tarballs directory($HOME/my-crosstool)Prefix directoryTarget options -(armv4t)Architecture level(arm9tdmi)Emit assembly for CPU(arm920t)Tune for
13、CPUToolchain options -(sice)Tuples vendor stringOperating System -Linux kernel version(3.2.48)-Check installed headersBinary utilities -binutils version(2.22)-C compiler -gcc version(4.6.3)-Fortran JavaC-library -glibc version(2.14)-*Force unwind supportMinimum supported kernel version(Specific kern
14、el version)-(X)Specific kernel version(3.0.4)Minimum kernel version to supportDebug facilities -*gdb -gdb version(7.4)-源码下载后,保持位置编译后的安装位置编译后的安装位置交叉编译器支持的cpu信息交叉编译器中,内核版本(头文件)使用ct-ng工具制作交叉编译器n 配置完毕之后,开始制作u$/home/sice/crosstool-ng/bin/ct-ng build使用ct-ng工具制作交叉编译器n 整个过程大概需要1小时,完成后的信息n 交叉编译器就安装在/home/sice/my-crosstool下:使用ct-ng工具制作交叉编译器n 我们自己制作的交叉编译工具名的前缀是“arm-sice-linux-gnueabi-”,比较长,而我们平时习惯用“arm-linux-”作为前缀。所以一般我们要建立相关的符合链接如下:使用ct-ng工具制作交叉编译器n 查看刚刚制作的交叉编译器版本信息课堂小结n 交叉编译器的制作过程思考题作业题
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。