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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(uboot116的移植目标板TQ24401 编译测试Word格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

uboot116的移植目标板TQ24401 编译测试Word格式.docx

1、 这两句的含义,可参见韦东山编著的嵌入式Linux应用开发完全手册的bootloader部分-第15章,第249页u-boot配置过程。4.使用支持softfloat的交叉编译器:crosstools_3.4.1_soft(光盘附带)。5.编译测试 配置make jzy2440_config编译:make 具体u-boot编译,连接过程参看韦东山嵌入式Linux应用开发完全手册第254页。6.清除上次编译的结果:make mrproperu-boot1.1.6的移植(目标板TQ2440)4 .lds设置17:34 阅读43 评论0 (四).lds文件设置 注:蓝色部分为修改或者改动部分,红色部

2、分为jzy23注解。在board/jzy2440/u-boot.lds里修改:SECTIONS. = 0x00000000;. = ALIGN(4);.text : cpu/arm920t/start.o(.text) board/jzy2440/boot_init.o (.text)/添加这句 *(.text).rodata : *(.rodata) .data : *(.data) .got : *(.got) . = .;_u_boot_cmd_start = .;.u_boot_cmd : *(.u_boot_cmd) _u_boot_cmd_end = .;_bss_start =

3、.;.bss : *(.bss) _end = .;u-boot1.1.6的移植(目标板TQ2440)5代码重定向15:55 阅读81 评论0 (五) 代码重定向 start.S里修改:#ifndef CONFIG_SKIP_RELOCATE_UBOOTrelocate:/* relocate U-Boot to RAM */adrr0, _start/* r0 - current position of code (r0=0)ldrr1, _TEXT_BASE/* test if we run from flash or RAM(r1=0x33f80000 */cmp r0, r1 /*do

4、nt reloc during debugbeq clear_bss /*(原来为stack_setup)*/r2, _armboot_start /*(r2为_start的地址=0x3ff80000)*/r3, _bss_start /*(在连接文件中定义)*/subr2, r3, r2#if 1/*(增加)*/bl CopyCode2Ram/* r0: source, r1: dest, r2: size */ /*(跳转到CopyCode2Ram函数)*/#elseaddr2, r0, r2/ r2 - source end addresscopy_loop:ldmiar0!, r3-r

5、10/ copy from source address r0stmiar1!/ copy to target address r1r0, r2/ until source end addreee r2blecopy_loop#endif#endif/ CONFIG_SKIP_RELOCATE_UBOOT */2.在board/jzy2440/boot_init.c中与CopyCode2Ram()相关的函数与定义如下:#include s3c2410.h#define GSTATUS1 (*(volatile unsigned int *)0x560000B0)#define BUSY 1/

6、供外部调用的函数 */void nand_init_ll(void);int nand_read_ll(unsigned char *buf, unsigned long start_addr, int size);/ NAND Flash操作的总入口, 它们将调用S3C2410或S3C2440的相应函数 */static void nand_reset(void);static void wait_idle(void);static void nand_select_chip(void);static void nand_deselect_chip(void);static void wri

7、te_cmd(int cmd);static void write_addr(unsigned int addr);static unsigned char read_data(void);/ S3C2410的NAND Flash处理函数 */static void s3c2410_nand_reset(void);static void s3c2410_wait_idle(void);static void s3c2410_nand_select_chip(void);static void s3c2410_nand_deselect_chip(void);static void s3c24

8、10_write_cmd(int cmd);static void s3c2410_write_addr(unsigned int addr);static unsigned char s3c2410_read_data(void);/ S3C2440的NAND Flash处理函数 */static void s3c2440_nand_reset(void);static void s3c2440_wait_idle(void);static void s3c2440_nand_select_chip(void);static void s3c2440_nand_deselect_chip(v

9、oid);static void s3c2440_write_cmd(int cmd);static void s3c2440_write_addr(unsigned int addr);static unsigned char s3c2440_read_data(void);/ S3C2410的NAND Flash操作函数 */ 复位 */static void s3c2410_nand_reset(void) s3c2410_nand_select_chip(); s3c2410_write_cmd(0xff); / 复位命令 s3c2410_wait_idle(); s3c2410_na

10、nd_deselect_chip();/ 等待NAND Flash就绪 */static void s3c2410_wait_idle(void) int i;S3C2410_NAND * s3c2410nand = (S3C2410_NAND *)0x4e000000; volatile unsigned char *p = (volatile unsigned char *)&s3c2410nand-NFSTAT; while(!(*p & BUSY) for(i=0; iNFCONF &= (111);/ 取消片选信号 */static void s3c2410_nand_deselec

11、t_chip(void)NFCONF |= (1 9) & 17) & 25) &/ 读取数据 */static unsigned char s3c2410_read_data(void)NFDATA; return *p;/ S3C2440的NAND Flash操作函数 */static void s3c2440_nand_reset(void) s3c2440_nand_select_chip(); s3c2440_write_cmd(0xff); s3c2440_wait_idle(); s3c2440_nand_deselect_chip();static void s3c2440_w

12、ait_idle(void)S3C2440_NAND * s3c2440nand = (S3C2440_NAND *)0x4e000000;s3c2440nand-static void s3c2440_nand_select_chip(void) s3c2440nand-NFCONT &1);static void s3c2440_nand_deselect_chip(void)NFCONT |= (1static void s3c2440_write_cmd(int cmd)static void s3c2440_write_addr(unsigned int addr) */(不是8!)

13、*/static unsigned char s3c2440_read_data(void)/ 在第一次使用NAND Flash前,复位一下NAND Flash */static void nand_reset(void) / 判断是S3C2410还是S3C2440 */ if (GSTATUS1 = 0x32410000) | (GSTATUS1 = 0x32410002) s3c2410_nand_reset();else s3c2440_nand_reset();static void wait_idle(void)static void nand_select_chip(void)st

14、atic void nand_deselect_chip(void)static void write_cmd(int cmd) s3c2410_write_cmd(cmd); s3c2440_write_cmd(cmd);static void write_addr(unsigned int addr) s3c2410_write_addr(addr); s3c2440_write_addr(addr);static unsigned char read_data(void) return s3c2410_read_data(); return s3c2440_read_data();/ 初

15、始化NAND Flash */void nand_init_ll(void)#define TACLS 0#define TWRPH0 3#define TWRPH1 / 使能NAND Flash控制器, 初始化ECC, 禁止片选, 设置时序 */NFCONF = (115)|(112)|(111)|(TACLS8)|(TWRPH04)|(TWRPH10); else/ 设置时序 */NFCONF = (TACLS12)|(TWRPH08)|(TWRPH14);NFCONT = (14)|(11)|(1/ 复位NAND Flash */nand_reset();#define NAND_SEC

16、TOR_SIZE 512#define NAND_BLOCK_MASK (NAND_SECTOR_SIZE - 1)/ 读函数 */int nand_read_ll(unsigned char *buf, unsigned long start_addr, int size) int i, j; if (start_addr & NAND_BLOCK_MASK) | (size & NAND_BLOCK_MASK) return ; / 选中芯片 */ nand_select_chip(); for(i=start_addr; i (start_addr + size);) / 发出READ0命令 */

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1