ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:1.01MB ,
资源ID:7517136      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-7517136.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于ARM9嵌入式Linux引导程序111Word格式.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

基于ARM9嵌入式Linux引导程序111Word格式.docx

1、gcc-3.3.6.tar.bz2 linux-libc-headers-2.6.12.0.tar.bz2linux-2.4.21.tar.bz2 crosstool-0.43.tar.gz 以上软件放在Linux的/mnt/hgfs/share中。仍以root身份登陆,在/下输入以下命令: mkdir downloadsmkdir crosstool将下载的软件复制到/download中。将crosstool-0.43.tar.gz 复制到/crosstool中,解压缩tar zxvf crosstool-0.43.tar.gz从终端进入crosstool-0.431)demo-arm.sh

2、:# vi demo-arm.sh:修改以下两个路径为TARBALLS_DIR=/download 下载的软件包存放的地址RESULT_TOP=/crosstool 交叉编译环境安装在这里2)arm.dat: #vi arm.dat TARGET=arm-linux #修改交叉编译软件的前缀3)gcc-4.1.0-glibc-2.3.6-tls.dat # vi gcc-3.4.5-glibc-2.3.6-tls.datBINUTILS_DIR= binutils-2.16.1GCC_DIR= gcc-3.3.6GLIBC_DIR= glibc-2.3.2LINUX_SANITIZED_HEA

3、DER_DIR= linux-libc-headers-2.6.12.0GLIBCTHREADS_FILENAME= glibc-linuxthreads-2.3.64)最后在用户模式下执行demo- arm.sh就可以了./demo-arm.sh数小时后出现如下图所示:修改环境2.2、vivi引导程序的移植。 博创2410板子上本身有vivi引导程序和2.4内核,将针对博创2410板子重新制作vivi引导程序,重新引导原有2.4内核。vivi的移植方法步骤:(1) 对vivi进行移植修改;(2) 对vivi进行配置、编译;(3) 烧写vivi;(4) 测试vivi;本文选择vivi-2003

4、0929版本。它不仅提供对ARM-920T内核的支持,而且直接提供了对于S3C2410x的板级支持,这使移植工作量相对减少。2.2.1 对vivi进行移植修改1修改vivi/Makefile1) 修改交叉编译库和头文件路径(1) 修改编译器路径。将:CROSS_COMPILE =/usr/local/arm/2.95.3/bin/arm-linux-修改为:CROSS_COMPILE = 符合本机的路径本机CROSS_COMPILE的路径为: CROSS_COMPILE = /usr/local/arm/2.95.3/bin/arm-linux-(2) 修改编译器库文件路径。ARM_GCC_L

5、IBS =/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3ARM_GCC_LIBS = 符合本机的路径本机ARM_GCC_LIBS的路径为:2) Linux内核包含文件路径 LINUX_INCLUDE_DIR =/usr/local/arm/2.95.3/include修改Linux头文件所在路径:LINUX_INCLUDE_DIR=符合本机的本机LINUX_INCLUDE_DIR的路径为:LINUX_INCLUDE_DIR = /usr/local/arm/2.95.3/include2修改vivi中与硬件相关的部分与具体运行在哪一个处理器

6、平台上相关的文件都存放在vivi/arch/目录下,本系统使用S3C2410x处理器,对应的目录为s3c2410。其中head.s文件是vivi启动配置代码,加电复位运行的代码就是从这里开始的。由于该文件中对处理器的配置均通过调用外部定义常数或宏来实现,所以针对不同的平台,只要是S3C2410x处理器,几乎不用修改,只要修改外部定义的初始值即可。这部分初始值都在 vivi/include/platform/smdk2410.h文件中定义,包括处理器时钟、存储器初始化、通用I/O口初始化以及vivi初始配置等。3支持Nand Flash启动的修改(vivi/arch/s3c2410/smdk.c

7、)1) 修改Nand Flash分区系统存储器使用 64 MB的 Nand Flash,因此vivi要从Nand Flash启动。Nand Flash只适合用来存放数据,不能够直接在其上执行程序指令。为了支持 Nand Flash的系统引导,S3C2410具备一个内部 SRAM缓冲器,叫做 Steppingstone。当系统启动时,Nand Flash存储器的前面 4 KB将被自动载入到 Steppingstone中,然后系统自动执行这些载入的引导代码。Nand Flash的最开始部分是head. S,在 head.S的尾部 vivi将执行 copy_myself代码段将自身拷贝到RAM中,然

8、后跳转到RAM中的 main()函数,开始运行。我们将系统的64M Nand Flash进行了重新分区,其具体分区如表7-2所示:表7-2 Nand Flash进行了重新分区表名称(name)起始地址(offset)大小(size)引导程序(vivi)0x000000000x00020000(128k)参数(param)0x000200000x00010000(64k)内核(kernel)0x000300000x00200000(2M)根文件系统(root)0x002300000x00400000(4M)应用程序(jffs2)0x006300000x039d0000(57M+832k)因此,从

9、Nand Flash中启动需要作修改:#ifdef CONFIG_S3C2410_NAND_BOOTmtd_partition_t default_mtd_partitions = name: vivi, offset: 0, size: 0x00020000,/128k flag: 0 , param 0x00030000, 0x00010000, /64kkernel 0x00200000, /2Mroot 0x00230000, 0x00400000,/4M MF_BONFSjffs2 0x00630000, 0x039D0000, MF_JFFS2 ;#endif 2) 修改默认参数v

10、ivi_parameter_t default_vivi_parameters = mach_type,MACH_TYPE,NULL , media_typeMT_S3C2410,boot_mem_base0x30000000,baudrateUART_BAUD_RATE,xmodem_one_nak0,xmodem_initial_timeout300000,xmodem_timeout30000000,ymodem_initial_timeout1500000,boot_delay0x1000,NULL ; xmodem_timeout需要调整到30000000,不然你在使用下载时候很容易

11、出现下载失败的信息,如:“Retry 0: NAK on sector”;o 为下载模式(Down Loading)下时间延时,在这段时间里,如果开发人员不输入任何vivi中的命令,则vivi将自动引导内核。本系统修改为:0x1000000。3) 修改启动命令 在 int default_nb_params = ARRAY_SIZE(default_vivi_parameters);下添加: char linux_cmd = noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttyS0,115200 rootfstype=cramfs dev

12、fs=mount mem=64M;式中启动命令:noinitrd :不使用ramdisk;root :根文件系统所在的MTD(本系统为第四个分区);init :内核运行入口命令文件;console :内核信息输出控制台;ttySAC0 :表示串口,115200表示波特率,这是2.6内核的串口名,这是为了方便引导第八章制作的2.6内核,如果是引导2.4内核则用串口名称为:ttyS0。rootfstype :挂载的根文件系统类型,根据自己的根文件系统来修改,本教材制作的根文件系统是cramfs;devfs :2.6内核采用内核使用devfs (Device File System);mem :Fl

13、ash存储器大小;4) 修改后编译通过的vivi smdk.c源代码:#include config.hmachine.hvivi.hpriv_data.hmtd/map.hboot_kernel.hcommand.htime.hmtd_partition_t default_mtd_partitions = 0x00020000, 0x00010000, 0x00200000, / 2M sector 0x00230000, 0x00400000, 0x00630000, 0x039D0000, #endif#ifdef CONFIG_S3C2410_AMD_BOOT 0x000C0000,

14、 0x00100000, 0x00140000,int default_nb_part = ARRAY_SIZE(default_mtd_partitions);#define MT_S3C2410 MT_SMC_S3C2410#define MT_S3C2410 MT_NOR_FLASH, MACH_TYPE, NULL , MT_S3C2410, NULL , 0x30000000, NULL , UART_BAUD_RATE, NULL , 0, NULL , 300000, NULL , 30000000, NULL , 1500000, NULL , 0x1000000, NULL

15、int default_nb_params = ARRAY_SIZE(default_vivi_parameters);char linux_cmd = noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttyS0,115200 rootfstype=cramfs devfs=mount mem=64M;void set_vpp(struct map_info *map, int vpp)void set_gpios(void) GPACON = vGPACON; GPBCON = vGPBCON; GPBUP = vGPBUP; GPCCO

16、N = vGPCCON; GPCUP = vGPCUP; GPDCON = vGPDCON; GPDUP = vGPDUP; GPECON = vGPECON; GPEUP = vGPEUP; GPFCON = vGPFCON; GPFUP = vGPFUP; GPGCON = vGPGCON; GPGUP = vGPGUP; GPHCON = vGPHCON; GPHUP = vGPHUP; EXTINT0 = vEXTINT0; EXTINT1 = vEXTINT1; EXTINT2 = vEXTINT2;int board_init(void) init_time(); set_gpio

17、s(); return 0;extern user_command_t cpu_cmd;int misc(void) add_command(&cpu_cmd);4、对vivi进行配置与编译进入 vivi目录执行 “make clean”,在编译之前将 vivi里所有的“ . o”和“ . o. flag”文件删除。输入“make menuconfig”进入配置界面,,如图7-10所示,进行对 vivi 裁剪。图7-10 vivi配置界面一些主要配置和说明如下:System Type(系统类型) -(S3C2410-based) ARM System type( ARM系统类型) ( ) SA

18、1100 based ( ) PXA250/210 based ( ) S3C2400 based (x) S3C2410 basedImplementations(启动位置) - (SMDK)Platform (x)SMDK ( )MPORT3 ( )MPORT1 *Support NAND Boot(支持NAND启动) Support AMD Boot(支持AMD启动) - Low Level Hardware Debugging(底层调试-硬件级) Enable simple memory test(简单的存储器测试)General Setup(通用设置) - Define TEXT A

19、ddress(定义文本地址)(0) vivi base addressvivi(起始地址) support reset handler(支持复位处理程序)Serial Port(串口) -* Serial Port (UART) support(串口支持)* Support serial terminal(支持串口终端)( EXTENDED)User interface(用户界面) ( )STANDARD(标准) ( x)EXTENDED(扩展)- Ports(端口)* Support UART 0(支持UART0) Support UART 1(支持UART1) Support UART 2

20、(支持UART2) Support UART 3(支持UART3)- Transfer Protocol传输协议* Support X Modem(支持 X Modem 传输) Support Y Modem(支持 Y Modem 传输) Support Z Modem(支持 Z Modem 传输)其它选项可采用默认配置。输入“make”对vivi进行编译,make没有错误,编译后在当前目录下会生成vivi的二进制代码文件vivi,如下图所示,这样就可将其烧写进开发板中,验证是否能将内核引导起来。2.2.2、烧写vivi开发板上已经存在vivi,可以用串口烧写;1.串口下载vivi1)建立超级

21、终端运行Windows2000系统下开始程序附件通讯超级终端(HyperTerminal),新建一个通信终端。如果要求输入区号、电话号码等信息请随意输入,出现如下2.2.21图所示对话框时,为所建超级终端取名为arm,可以为其选 一个图标。单击“确定”按钮。图2.2.21在接下来的对话框中选择ARM 开发平台实际连接的PC串口(如COM1),按确定后出现如下图2.2.22所示的属性对话框,设置通信的格式和协议。这里波特率为115200,数据位8,无奇偶校验,停止位1,无数据流控制。按确定完成设置。图2.2.22完成新建超级终端的设置以后,可以选择超级终端文件菜单中的另存为,把设置好的超级终端保

22、存在桌面上,以备后用。 用串口线将PC 机串口和平台UART0 正确连接后,就可以在超级终端上看到实验平台程序输出的信息。2) 格式化flash 打开超级终端,先按住PC机键盘的Back Space键,然后启动2410-S,进入vivi,按照以下命令格式化flash,重新分区,如下图2.2.23所示:vivibon part 0 128k 192k 2240k 6336k:m 65536k回车图2.2.23 格式化flash3) 烧写vivi 这时已格式化flash,运行的是SDRAM中的vivi。注意如果这时重启或断电会丢失所有数据,否则必须用Jtag重新烧写vivi。load flash vivi x 回车。点击超级终端任务栏上“传送”下拉菜单中的“发送文件”,选择协议为Xmodem,选择镜像文件vivi,点击“发送”,如图2.2.24,10秒左右vivi就烧写到

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2