上一页 1 ··· 23 24 25 26 27 28 29 30 31 ··· 38 下一页
摘要: 1.在上章-移植uboot里.我们来分析下uboot是如何进入到内核的 首先,uboot启动内核是通过bootcmd命令行实现的,在我们之前移植的bootcmd命令行如下所示: 1.1然后我们进入cmd_bootm.c,找到对应的bootm命令对应的do_bootm(): 上面的boot_os_fn 阅读全文
posted @ 2018-01-23 19:17 诺谦 阅读(2870) 评论(0) 推荐(2) 编辑
摘要: 在上一章,裁剪uboot以及分区后,本章主要使uboot支持yaffs以及制作补丁 1. 修改uboot支持yaffs 首先,每个命令都会对应一个文件,比如nand命令对应的common/cmd_nand.c 而我们使用nand命令时,便会进入do_nand()函数,位于common/cmd_nan 阅读全文
posted @ 2018-01-19 14:02 诺谦 阅读(2222) 评论(0) 推荐(1) 编辑
摘要: 在上一章使uboot支持网卡传输文件后,但是每次启机时,环境变量都要变为默认值,需要重新设置ip,MAC地址才行,由于没有配置mtdparts命令,启动内核也不成功 所以本章主要学习: 1)修改环境变量默认值 2)裁剪uboot 3)分区,设置mtdparts命令 1.修改之前,先来理解下uboot 阅读全文
posted @ 2018-01-17 14:26 诺谦 阅读(15871) 评论(0) 推荐(2) 编辑
摘要: 在上一章,使uboot能够支持nor、nand 本节继续修改让uboot支持DM9000C网卡,便可以通过网络来传输文件 首先uboot已带有dm9000网卡的驱动,位于drivers/net/下的dm9000x.h、dm9000x.c 1.DM9000C介绍 参考之前写的移植DM9000C驱动章节 阅读全文
posted @ 2018-01-17 09:33 诺谦 阅读(3991) 评论(0) 推荐(0) 编辑
摘要: 在上一章,我们添加了nor,nand启动后,uboot启动出如下图所示: 上面的Flash: *** failed *** 是属于uboot第二阶段函数board_init_r()里的代码, 代码如下所示(位于arch/arm/lib/board.c): 从上面代码看出, board_init_r( 阅读全文
posted @ 2018-01-08 18:00 诺谦 阅读(4851) 评论(0) 推荐(2) 编辑
摘要: 上章分析了uboot启动流程后,接下来便来配置新的单板,实现nor、nand启动 1.首先在uboot里新建单板2440 1.1将2410的单板文件夹拷贝成2440: 然后将smdk2440下的smdk2410.c改为smdk2440.c,以及修改更改好的Makefile 1.2 将2410的头文件 阅读全文
posted @ 2018-01-03 20:31 诺谦 阅读(6755) 评论(0) 推荐(2) 编辑
摘要: 本节总结: uboot启动流程如下: 1)设置CPU为管理模式 2)关看门狗 3)关中断 4)设置时钟频率 5)关mmu,初始化各个bank 6)进入board_init_f()函数 (初始化定时器,GPIO,串口等,划分内存区域) 7)重定位 复制uboot,然后修改SDRAM上的uboot链接地 阅读全文
posted @ 2017-12-28 16:29 诺谦 阅读(49428) 评论(9) 推荐(11) 编辑
摘要: 当产品要发布之前,都会进行反复的测试输入,比如:测试按键,遥控,触摸等等. 当出现bug时,就还需要不停地找规律,修改程序,直到修复成功,会显的非常麻烦 答: 可以通过之前在35.Linux-分析并制作环形缓冲区里学的,使用myprintf()保存到环形缓冲区. 当出错时,直接可以通过缓冲区里的数据 阅读全文
posted @ 2017-12-22 15:40 诺谦 阅读(1157) 评论(3) 推荐(2) 编辑
摘要: 1首先来讲讲应用程序如何实现系统调用(用户态->内核态)? 我们以应用程序的write()函数为例: 1)首先用户态的write()函数会进入glibc库,里面会将write()转换为swi(Software Interrupt)指令,从而产生软件中断,swi指令如下所示: 2)然后CPU会跳到异常 阅读全文
posted @ 2017-12-20 18:35 诺谦 阅读(2632) 评论(1) 推荐(4) 编辑
摘要: 1.在之前第36章里,我们学习了通过驱动的oops定位错误代码行 第36章的oops代码如下所示: 1.1那为什么在上一章,我们用错误的应用程序,却没有打印oops,如下图所示: 接下来,我们便来配置内核,从而打印应用程序的oops 2.首先来搜索oops里的:Unable to handle ke 阅读全文
posted @ 2017-12-15 23:14 诺谦 阅读(3247) 评论(0) 推荐(1) 编辑
上一页 1 ··· 23 24 25 26 27 28 29 30 31 ··· 38 下一页