- 1、本文档共443页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
① 利用Jflash线将PC机和嵌入式目标板的JTAG口正确连接。这里要注意,Jflash线和Wiggler线的形状非常相似,不要混淆。 ② 启动sjf服务,安装giveio.sys驱动。打开sjf目录下的loaddrv.exe,将弹出LoadDrv窗口. ③ 然后再依次点击install 和start按钮, 就会提示“service already runing”,也就是驱动已经安装成功. ④ 在DOS环境下手动运行sjf2410命令:sjf2410 /f: vivi,其中“/f:是”参数而不是目录. ⑤ vivi下载成功后,用串口将PC和嵌入式目标板连接起来,并启动Windows中的超级终端. 12.3 嵌入式Linux内核的移植 内核是嵌入式Linux系统的核心部分,因为Linux与Windows不同,前者的内核和文件系统、图形用户系统(GUI窗口系统)可以分开,它们的开发、移植、下载甚至运行都是可以分开的。内核移植是一个比较复杂的任务,当然也是嵌入式系统开发中非常重要的一个过程。内核移植一般包括内核配置、内核编译和内核下载3大步骤。 12.3.1 内核移植的准备 移植内核首先要准备好编译内核的编译器即交叉编译工具链,然后从相关的网站()下载要移植的内核源代码代码(基本上都是C语言编写) 。 12.3.1 内核移植的准备 3. arch/arm目录下Config.in 修改 Config.in文件是用来设置后面介绍的menuconfig配置菜单的,它们是一一对应关系。这里把嵌入式目标板的CPU平台加在相应的地方,这样在配置Linux内核时就能够选择是否支持该平台了。最初标准的2.4.18内核中没有S3C2410的相关信息,所以需要在该文件中进行有效的配置,以加入支持S3C2410处理器的相关信息。 12.3.1 内核移植的准备 4. arch/arm/boot目录下Makefile 修改 编译出来的内核存放在该目录下。这里用来指定内核解压到实际硬件内存系统中的物理地址。一般如果内核无法正常启动,很可能是这里的地址设置不正确。 5. arch/arm/boot/compressed目录下Makefile 修改 该文件从vmlinux中创建一个压缩的vmlinuz镜像文件。该文件中用到的SYSTEM、ZTEXTADDR、ZBSSADDR、和ZRELADDR是从arch/arm/boot/Makefile文件中得到的。 12.3.1 内核移植的准备 6. arch/arm/boot/compressed目录下添加head-s3c2410.s 7. arch/arm/def-configs目录 这里定义了一些平台的config文件,比如lart和assert等。把配置好的S3C2410的配置文件复制到这里即可。 12.3.1 内核移植的准备 8. arch/arm/kernel目录下Makefile 修改 该文件主要用来确定文件类型的依赖关系。 9. arch/arm/kernel目录下的文件debug-armv.s 修改 在该文件中添加如下代码,目的是关闭外围设备的时钟,以保证系统正常运行。 12.3.1 内核移植的准备 10. arch/arm/kernel目录下的文件entry-armv.s 修改 在适当的地方加入如下代码,此为CPU初始化时的处理中断的汇编代码。 11. arch/arm/mm目录下的相关文件 此目录下的文件是和ARM平台相关的内存管理内容,只有mm-armv.c文件需要移植。 12.3.1 内核移植的准备 12. arch/arm/mach-s3c2410目录下的相关文件 这个目录在2.4.18版本的内核中是不存在的,但在高版本中已经添加了对这款处理器的支持。不过发布的内核只是对处理器的基本信息提供支持,有关开发板的外设,例如 USB、电源管理等都要用户自己添加。 (2)Kenel interfaces 设备驱动程序必须向 Linux 内核或者它所在的子系统提供一个标准的接口。例如,终端驱动程序向 Linux 内核提供了一个文件 I/O 接口,而 SCSI 设备驱动程序向 SCSI 子系统提供了 SCSI 设备接口,接着,向内核提供了文件 I/O 和 buffer2cache 的接口。 (3)Kernel mechanisms and services 设备驱动程序使用标准的内核服务,例如内存分配、中断转发和等待队列来完成工作。UNIX SVR4 提出了设备-驱动程序接口/驱动程序-内核接口规范(DDI/DKI),由它来规范化内核与驱动程序之间的接口。 (4)Loadable 大多数的 Linux 设备驱动程序,可以在需要的时候作为内核模块加载,在不再需要的
文档评论(0)