预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

《嵌入式linux系统开发实训》指导书 指导教师:吕祖成 丁度树 设计题目:嵌入式系统的移植与调试 实训的目的 嵌入式linux系统开发实训通过把理论教学与实践教学紧密的结合在一起,将所掌握的理论知识应用于实践中来,从而加深对所学理论知识的理解并培养基本的实际应用和产品开发能力。 2、实训设计内容及要求 主要技术指标和要求 A、用u-boot官网2011.06版本的源码移植到SBC3X平台,并测试RAM、NAND、MMC、I2C、ETH的支持。 B、用aragoPSP03.00.01.06版本的源码移植到SBC3X平台,并调试LCD、触摸屏,AT24(I2C),按键驱动,LED,使其能正常工作。 C、linux串口应用编程(跟PC进行通信)。 D、以上三项内容,学生可以自选一项作为本次实训的内容,有条件的学生可以三项都做,也可以小组分工形式完成。 实训计划与开展步骤 开发环境搭建 在PC机上搭建好开发平台,安装必要的开发工具,如串口工具,代码阅读工具,git,交叉编译工具链等。 开发板的熟悉 开发板的熟悉,先认真阅读用户手册的内容,动手实践用户手册里的操作。了解开发板的基本使用,linux系统的使用与设置,构建嵌入式linux的软件开发环境,构建开发板的软件开发环境等等。 U-Boot的移植与调试 克隆u-boot源码到本地仓库,参考TI的EVM板进行移植。移植的步骤请查看书本的介绍或网上查找相关资料。 u-boot的测试: 引导系统正常启动。(基本要求) 测试RAM、NAND、MMC、I2C、ETH的支持并进行调试,可参照参考资料里的u-boot测试用例文档。(不做硬性要求) Kernel的移植与测试 克隆kernel的源码到本地仓库,参考TI的EVM板进行移植。移植的步骤请查看书本的介绍或网上查找相关资料。 内核的测试:内核的正常启动。(基本要求) 调试LCD、触摸屏,AT24(I2C),按键驱动,LED,使其能正常工作。(不做硬性要求) linux串口应用编程 编写一个自收自发的串口应用程序,可参考书本上的串口编程的例子。 串口程序测试:通过PC机的串口助手测试。(基本要求) 扩展功能:可通过配置参数设置串口的波特率,具有等待超时功能。 3、实训内容实现参考 内核移植步骤和驱动调试参考 I、基本移植步骤: 1.修改顶层的Makefile CROSS_COMPILE?=/usr/local/arm/arm-2009q1/bin/arm-none-linux-gnueabi- 2.复制mach-xx/board-xx.c参考板文件,然后在相应的目录下的Kconfig和Makefile添加目标板; 3.修改board-xx.c的MACHINEID; 4.make参考板的xx_deconfine 5.makemenuconfie修改成目标板;(这时可以保存顶层目录的.config文件为xx_deconfig) 6.makeuImage-j4 II、驱动的移植和调试: 一.lcd驱动添加; 1.在board-xx.c文件添加lcd_device和修改对应的lcd-enablepin; 2.在drivers/video/目录下添加lcdpanelsupport.c文件,并在对应目录的Kconfig和Makefile添加lcd选项; 二、触摸屏驱动调试 在board-xx.c文件里定义: 1.触摸屏芯片挂在McSPI总线上: 对ads7846_platform_data配置;触摸屏IC参数; 对omap2_mcspi_device_config配置;McSPI主从模式选择/*single_channel:0:slave,1:master*/ 对spi_board_info配置;挂在第几条McSPI总线、总线速率、中断号 structspi_board_infoomap3stalker_spi_board_info[]={ [0]={ .modalias ="ads7846", .bus_num =1, .chip_select =0, .max_speed_hz =1500000, .controller_data =&ads7846_mcspi_config, .irq =OMAP_GPIO_IRQ(OMAP3_EVM_TS_GPIO), .platform_data =&ads7846_config, }, }; 注:debounce_tol的值会影响屏的响应速度 board_xx_init() spi_register_board_info(omap3stalker_spi_board_info, ARRAY_SIZE(omap3stalker_