摘要: 编译出错笔记:start.s:20: Error: no such instruction: `ldr r0,=WTCON' 错误:没有这样的指令 解决:编译文件后缀名必须为大写S,改为start.S start.S:34: Error: bad instruction `ldr,r0,=0x4C0 阅读全文
posted @ 2017-08-09 16:44 诺谦 阅读(5666) 评论(0) 推荐(2) 编辑
摘要: adr :相对寻址,与当前位置有关 ldr :绝对寻址,与当前位置无关 在初始化SDRAM时就会用到adr,代码如下: 上面代码中第3行之所以用到了 “ adr r1,SDRAM_CONFIG ”,是因为SDRAM未初始化之前,不能使用绝对寻址,所以使用adr相对寻址. adr r1,SDRAM_C 阅读全文
posted @ 2017-08-09 16:22 诺谦 阅读(1797) 评论(0) 推荐(0) 编辑
摘要: MOV 1.可以寄存器与寄存器之间传递数据 2.可以常数传递到寄存器中(常数不能超过32位) LDR 1.可以地址与寄存器之间的数据传递 2.也可以常数传递到寄存器中 实例: 1.r1与r2之间传递就只能用MOV: MOV r1,r2 2.常数传递到寄存器可以使用MOV和ldr: MOV r0,#0 阅读全文
posted @ 2017-08-09 09:20 诺谦 阅读(2311) 评论(0) 推荐(0) 编辑
摘要: 本节主要学习: 详细分析UBOOT中"bootcmd=nand read.jffs2 0x30007FC0 kernel;bootm 0x30007FC0"中怎么实现bootm命令启动内核. 其中bootm要做的事情:a 读取头部,把内核拷贝到合适的地方(0X30008000)b 在do_boom_ 阅读全文
posted @ 2017-08-09 01:16 诺谦 阅读(10070) 评论(1) 推荐(1) 编辑
摘要: 本节主要学习: 详细分析UBOOT中"bootcmd=nand read.jffs2 0x30007FC0 kernel;bootm 0x30007FC0" 怎么实现nand命令读内核. 1. nand read.jffs2 0x30007FC0 kernel 步骤a: 从NAND FILSHE中k 阅读全文
posted @ 2017-08-09 00:52 诺谦 阅读(3840) 评论(0) 推荐(0) 编辑
摘要: 本节主要学习,run_command函数命令查找过程,命令生成过程 1.run_command函数命令查找过程分析:在u-boot界面中(main_loop();位于u-boot-1.1.6/common/main.c ):a 输入命令字符串b 将命令字符串代入函数run_command()c ru 阅读全文
posted @ 2017-08-09 00:46 诺谦 阅读(5584) 评论(0) 推荐(1) 编辑
摘要: 仿照bootm命令生成来制作一个hello命令,功能:打印出hello,world!和参数值 1.点击New File ,创建cmd_hello.c将./common/cmd_bootm.c的头文件复制到 cmd_hello.c中(因为cmd_bootm.c的头文件都是包括的命令相关的文件): #i 阅读全文
posted @ 2017-08-09 00:27 诺谦 阅读(1263) 评论(0) 推荐(0) 编辑
摘要: start_armboot()分析:在start.S初始化后跳转到start_armboot实现第2阶段硬件相关的初始化(烧写擦除flash,网卡驱动,usb驱动,串口驱动,从FLASH读内核,启动内核等)然后调用main_loop();实现u-boot环境参数设置(print),读内核,启动内核等 阅读全文
posted @ 2017-08-09 00:23 诺谦 阅读(1746) 评论(0) 推荐(2) 编辑
摘要: 分析uboot第一个执行函数_start(cpu/arm920t/start.S) 打开cpu/arm920t/start.S 在第1行中".globl _start":使用.globol声明全局符号_start,在 board/100ask24x0/u-boot.lds中ENTRY(_start) 阅读全文
posted @ 2017-08-09 00:17 诺谦 阅读(4954) 评论(0) 推荐(2) 编辑