随笔分类 -  朱老师笔记

摘要:1、启动过程特征总结 (1)第一阶段为汇编阶段、第二阶段为C阶段 (2)第一阶段在SRAM中、第二阶段在DRAM中 (3)第一阶段注重SoC内部、第二阶段注重SoC外部Board内部 2、uboot的第一阶段做了哪些工作 (1)构建异常向量表 (2)设置CPU为SVC模式 (3)关看门狗 (4)开发 阅读全文
posted @ 2016-04-24 14:56 SuGuolin 阅读(308) 评论(0) 推荐(0)
摘要:(1)uboot的版本号分3个级别:VERSION:主板本号PATCHLEVEL:次版本号SUBLEVEL:再次版本号EXTRAVERSION:另外附加的版本信息这4个用.分隔开共同构成了最终的版本号。(2)Makefile中版本号最终生成了一个变量U_BOOT_VERSION,这个变量记录了Mak 阅读全文
posted @ 2016-03-23 22:38 SuGuolin 阅读(5024) 评论(0) 推荐(1)
摘要:$@--目标文件(x210_sd_config)的_config用空格来代替(=(空)),所以第一个变量就变成x210_sd Makefile有三个非常有用的变量。分别是$@,$^,$<代表的意义分别是:$@--目标文件,$^--所有的依赖文件,$<--第一个依赖文件。 以下为mkconfig的源码 阅读全文
posted @ 2016-03-23 20:40 SuGuolin 阅读(2159) 评论(0) 推荐(0)
摘要:Makefile中使用通配符(1)* 若干个任意字符(2)? 1个任意字符(3)[] 将[]中的字符依次去和外面的结合匹配 还有个%,也是通配符,表示任意多个字符,和*很相似,但是%一般只用于规则描述中,又叫做规则通配符。 Makefile的自动变量(1)为什么使用自动变量。在有些情况下文件集合中文 阅读全文
posted @ 2016-02-21 05:38 SuGuolin 阅读(237) 评论(0) 推荐(0)
摘要:通配符%和Makefile自动推导(规则)(1)%是Makefile中的通配符,代表一个或几个字母。也就是说%.o就代表所有以.o为结尾的文件。(2)所谓自动推导其实就是Makefile的规则。当Makefile需要某一个目标时,他会把这个目标去套规则说明,一旦套上了某个规则说明,则Makefile 阅读全文
posted @ 2016-02-21 04:42 SuGuolin 阅读(234) 评论(0) 推荐(0)
摘要:1、shell中调用linux命令(1)直接执行(2)反引号括起来执行。有时候我们在shell中调用linux命令是为了得到这个命令的返回值(结果值),这时候就适合用一对反引号(键盘上ESC按键下面的那个按键,和~在一个按键上)来调用执行命令。 阅读全文
posted @ 2016-01-26 22:33 SuGuolin 阅读(157) 评论(0) 推荐(0)
摘要:1、shell是操作系统的终端命令行 (1)shell可以理解为软件系统提供给用户操作的命令行界面,可以说它是人机交互的一种方式。 (2)我们可以使用shell和操作系统、uboot等软件系统进行交互。具体来说就是我们通过shell给软件系统输入命令然后回车执行,执行完成后又会回到shell命令... 阅读全文
posted @ 2016-01-26 21:24 SuGuolin 阅读(382) 评论(0) 推荐(0)
摘要:1、一个事实:大部分指令是位置有关编码位置无关编码(PIC,position independent code):汇编源文件被编码成二进制可执行程序时编码方式与位置(内存地址)无关。位置有关编码:汇编源码编码成二进制可执行程序后和内存地址是有关的。我们在设计一个程序时,会给这个程序指定一个运行地址(... 阅读全文
posted @ 2016-01-05 14:23 SuGuolin 阅读(774) 评论(0) 推荐(0)
摘要:1、什么是cache,有什么用 cache是一种内存,叫高速缓存。从容量来说:CPU 寄存器 > cache > DDR cache的存在,是因为寄存器和ddr之间速度差异太大,ddr的速度远不能满足寄存器的需要(不能满足cpu的需要,所以没有cache会拉低整个系统的整体速度)整个系统中CP... 阅读全文
posted @ 2016-01-05 11:26 SuGuolin 阅读(705) 评论(0) 推荐(0)
摘要:SDRAM:Synchronous Dynamic Random Access Memory,同步动态随机存储器。 DDR: DDR是DDR SDRAM,是SDRAM的升级版。(DDR:double rate,双倍速度的SDRAM) DDR有好多代:DDR1、DDR2、DDR3、DDR4、LPDDR... 阅读全文
posted @ 2015-12-11 08:47 SuGuolin 阅读(331) 评论(0) 推荐(0)
摘要:什么是结构体对齐访问(1)结构体中元素的访问其实本质上还是用指针方式,结合这个元素在整个结构体中的偏移量和这个元素的类型来进行访问的。(2)但是实际上结构体的元素的偏移量比较复杂,因为结构体要考虑元素的对齐访问,所以每个元素时间占的字节数和自己本身的类型所占的字节数不一定完全一样。(譬如char c... 阅读全文
posted @ 2015-12-06 18:17 SuGuolin 阅读(447) 评论(0) 推荐(0)
摘要:arm-linux-objdump -D led.elf > led_elf.dis objdump是gcc工具链中的反汇编工具,作用是由编译链接好的elf格式的可执行程序反过来得到反汇编代码 -D 表示反汇编 > 左边的是elf的可执行程序(反汇编的原材料), >右边的是反汇编生成的反汇编... 阅读全文
posted @ 2015-12-06 16:19 SuGuolin 阅读(2785) 评论(0) 推荐(0)
摘要:为什么需要Makefile? Makefile是用来管理工程的。 在一个正式的软件项目中,由很多个.c和.h文件构成,此时如果直接在命令行编译,就会像这样:gcc a.c b.c c.c d.c -o exe每次编译都要输入一堆东西很麻烦,这个问题严重影响工作效率,怎么办?用Makefile来解决M... 阅读全文
posted @ 2015-12-02 10:03 SuGuolin 阅读(185) 评论(0) 推荐(0)
摘要:自己动手安装交叉工具链:1.Windows中装软件的特点 Windows中装软件使用安装包,安装包解压后有2种情况:一种是一个安装文件(.exe、.msi),双击进行安装,下一步直到安装完毕。安装完毕后会在桌面上生成快捷方式,我们平时使用快捷方式来启动这些程序;另一种是所谓的绿色软件、免安装包,这... 阅读全文
posted @ 2015-12-01 11:25 SuGuolin 阅读(634) 评论(0) 推荐(0)
摘要:1、 win8要装DNW驱动首先要禁止驱动数字签名(参考百度经验:http://jingyan.baidu.com/article/3f16e003d1f4612591c103ce.html) 2、然后参照开发板给安装包按步骤操作,跟其它启动差不多(在破解过程中要填.inf的路径是指破解包解压的文... 阅读全文
posted @ 2015-12-01 09:06 SuGuolin 阅读(326) 评论(0) 推荐(0)
摘要:为什么需要多寄存器访问指令?ldr/str每周期只能访问4字节内存,如果需要批量读取、写入内存时太慢,解决方案是stm/ld举例(uboot start.S 537行) stmia sp, {r0 - r12}将r0存入sp指向的内存处(假设为0x30001000);然后地址+4(即指向0x3000... 阅读全文
posted @ 2015-11-27 18:03 SuGuolin 阅读(201) 评论(0) 推荐(0)
摘要:协处理器cp15操作指令:mcr & mrc•mrc用于读取CP15中的寄存器•mcr用于写入CP15中的寄存器什么是协处理器?•SoC内部另一处理核心,协助主CPU实现某些功能,被主CPU调用执行一定任务。•ARM设计上支持多达16个协处理器,但是一般SoC只实现其中的CP15.(cp:copro... 阅读全文
posted @ 2015-11-27 17:39 SuGuolin 阅读(177) 评论(0) 推荐(0)
摘要:常用ARM指令1:数据处理指令 •数据传输指令 mov mvn mov r1, r0 @两个寄存器之间数据传递 mov r1, #0xff @将立即数赋值给寄存器mov 和mvn用法一样,区别是mov是原封不动的传递,而mvn是按位取反后传递•算术指令 add sub rs... 阅读全文
posted @ 2015-11-27 11:21 SuGuolin 阅读(399) 评论(0) 推荐(0)
摘要:字符串和字符数组的细节 1、 sizeof是C语言的一个关键字,也是C语言的一个运算符(sizeof使用时是sizeof(类型或变量名),所以很多人误以为sizeof是函数,其实不是); sizeof运算符用来返回一个类型或者是变量所占用的内存字节数。为什么需要sizeof?主要... 阅读全文
posted @ 2015-11-25 23:55 SuGuolin 阅读(4802) 评论(0) 推荐(1)
摘要:(汇编)指令是CPU机器指令的助记符,经过编译过会得到一串0011组成的机器码,可以由CPU读取执行。(汇编)伪指令本质不是指令(只是和指令一起写在代码中),它是编译器环境提供的,目的是用来指导编译过程,经过编译后伪指令最终不会生成机器码。两种不同风格的ARM指令--ARM官方的ARM汇编风格:指令... 阅读全文
posted @ 2015-11-23 21:34 SuGuolin 阅读(326) 评论(0) 推荐(0)