随笔分类 -  2016.01_u-boot移植JZ2440

摘要:一、烧写文件系统 1.1 jffs2烧写 1.下载文件系统:tftp 30000000 fs_mini_mdev.jffs2 2.擦除文件的块:nand erase.part rootfs 3.烧入文件系统:nand write.jffs2 30000000 0x00260000 5b89a8 4. 阅读全文
posted @ 2017-06-26 19:51 游戏进行中 阅读(821) 评论(0) 推荐(0) 编辑
摘要:一、错误处理 上一节遇到一个错误: print一下: 发现我们在jz2440.h中静态写的网络参数都没有写进去。 dm9000 address not set。 dm9000的地址未设置。 这里对应两个函数: static int eth_pre_unbind(struct udevice *dev 阅读全文
posted @ 2017-06-24 20:50 游戏进行中 阅读(1372) 评论(0) 推荐(0) 编辑
摘要:一、内核裁剪 内核的裁剪首先就是修改我们的配置文件,即 include/configs/jz2440.h 文件,里面定义的很多宏,我们也许用不上的就要去掉。 编译执行: do_date 对应着宏 DO_CMD_DATE,去掉此宏 再次编译执行,编译完成。 烧写进开发板。启动。 二、环境变量 2.1 阅读全文
posted @ 2017-06-24 13:18 游戏进行中 阅读(2446) 评论(0) 推荐(0) 编辑
摘要:一、准备工作 1.1 原理图 CONFIG_DM9000_BASE 片选信号是接在nGCS4引脚,若要确定网卡的基地址,则要根据片选信号的接口去确定。 在三星2440的DATASHEET中memory control这一章的Figure 5-1. S3C2440A Memory Map after 阅读全文
posted @ 2017-06-20 19:38 游戏进行中 阅读(1542) 评论(0) 推荐(0) 编辑
摘要:一、移植前的修改 1.1 include/configs/jz2440修改 原来的定义: 可以看出,要先定义CONFIG_CMD_NAND才能使能NANDFlash。 这个在我们文件中的82行有定义,所以不需要定义了。 将里面的S3C2410全部改为S3C2440: 1.2 drivers/mtd/ 阅读全文
posted @ 2017-06-19 21:54 游戏进行中 阅读(750) 评论(0) 推荐(0) 编辑
摘要:一、问题定位 开发板重启后打印了2个提醒和一个错误,caches的提醒先不看,看看flash和nand下面的提醒,bad CRC,Using default enviroment,我们可以定位Using default enviroment定位到 代码位置,如下: Env_common.c (com 阅读全文
posted @ 2017-06-18 18:13 游戏进行中 阅读(1347) 评论(0) 推荐(0) 编辑
摘要:一、NAND原理 NAND 无地址空间,地址和数据的发送都依赖于LDATA[0:7]这一串数据总线。 不看随机页编程,看到从高位到低位的页,总共分为64个页面,每个页的组成是2K + 64 个byte,一个块的大小是(128K + 4K)byte,64页组成一块。 1.1 NAND Flash的编址 阅读全文
posted @ 2017-06-15 20:16 游戏进行中 阅读(955) 评论(1) 推荐(0) 编辑
摘要:一、MMU介绍 1.1 虚拟地址与物理地址 建立两个应用程序,hello1.c和hello2.c,然后运行: hello1.c hello2.c 运行结果如下: 可以看到两个结果打印的地址是一样的,都为 0x601040,这说明两段程序都运行于同一个地址中。我们的死循环程序又保证了两个程序在同时运行 阅读全文
posted @ 2017-06-12 16:47 游戏进行中 阅读(1123) 评论(0) 推荐(0) 编辑
摘要:一、CPU访问芯片的条件 CPU通过访问存储控制器,来读取外部设备的数据。 CPU想访问一个芯片,需要如下条件(配置信息): 地址线 数据线:8位/16位/32位数据宽度 时钟/频率 其他芯片相关的特性:比如SDRAM,有行地址、列地址和bank 地址线 数据线:8位/16位/32位数据宽度 时钟/ 阅读全文
posted @ 2017-06-11 11:11 游戏进行中 阅读(776) 评论(0) 推荐(0) 编辑
摘要:一、代码流程 1.1 串口代码 程序流程图如下; default_serial_console 执行的代码如下: 在JZ2440.H中有如下定义: 则执行结构体s3c24xx_serial0_device,从而执行INIT_S3C_SERIAL_STRUCTURE(0, "s3ser0"): _se 阅读全文
posted @ 2017-06-08 03:20 游戏进行中 阅读(3752) 评论(0) 推荐(0) 编辑
摘要:最开始已经建立了新单板以及配置文件,现在就需要做的是代码的修改,配置成适合目标板使用的u-boot。 一、时钟修改 在代码流程分析中,我们知道,系统的启动是: 设置 CPU 为管理员模式 关闭看门狗 屏蔽中断 设置启动参数:时钟 FCLK:HCLK:PCLK = 1:2:4 FCLK=120MHZ 阅读全文
posted @ 2017-06-06 19:39 游戏进行中 阅读(2323) 评论(9) 推荐(0) 编辑
摘要:一、重定位 1.以前版本的重定位 2.新版本 我们的程序不只涉及一个变量和函数,我们若想访问程序里面的地址,则必须使用SDRAM处的新地址,即我们的程序里面的变量和函数必须修改地址。我们要修改地址,则必须知道程序的地址,就需要在链接的时候加上PIE选项: 加上PIE选项后,链接时候的地址就会生成,然 阅读全文
posted @ 2017-06-05 20:30 游戏进行中 阅读(2403) 评论(3) 推荐(0) 编辑
摘要:一、vectors.S 1.1 代码地址 vectors.S (arch\arm\lib) 1.2 流程跳转 跳转符号 B 为 start.S 中的 reset 执行代码,暂且先不看,先看看 vector.S 中的执行。 1.3 代码分析 这里的代码全部都是异常向量表的定义,第一段代码中,执行 b 阅读全文
posted @ 2017-06-03 16:32 游戏进行中 阅读(1166) 评论(0) 推荐(0) 编辑
摘要:一、代码执行总体流程图 1.1 代码路径 U-boot.lds (arch\arm\cpu) vectors.S (arch\arm\lib) start.S (arch\arm\cpu\arm920t) lowlevel_init.S (board\samsung\jz2440) crt0.S ( 阅读全文
posted @ 2017-06-02 10:11 游戏进行中 阅读(1942) 评论(0) 推荐(1) 编辑
摘要:一、工具链的制作 1.1 工具 软件工具:crosstool-ng 下载地址:git clone https://github.com/crosstool-ng/crosstool-ng crosstool-ng的环境需要libncurse5-dev sudo apt-get install lib 阅读全文
posted @ 2017-05-26 18:46 游戏进行中 阅读(2926) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示