嵌入式杂谈
文章平均质量分 87
嵌入式开发宝库
Hilbert(*^*)
箴言:认真、努力,不哗众取宠,不走捷径,坚持美好,特例独行!!!
展开
-
Framebuffer应用开发
开源的Freetype字体引擎库它提供统一的接口来访问多种字体格式文件,从而实现矢量字体显示。我们只需要移植这个字体引擎,调用对应的API接口,提供字体关键点,就可以让freetype库帮我们实现闭合曲线,填充颜色,达到显示矢量字体的目的。关键点(glyph)存在字体文件中,Windows使用的字体文件在FONTS目录下,扩展名为TTF的都是矢量字库,本次使用实验使用的是新宋字体simsun.ttc。字体文件结构如上图。原创 2022-12-28 07:00:00 · 506 阅读 · 0 评论 -
关于ARM架构
ARM处理器有37个寄存器,由于Cotex-A多了一种monitor工作模式,所以又多了三个寄存器(R13_mon,R14_mon,SPSR_mon),Cortex-A系列有40个寄存器。原创 2022-12-27 07:00:00 · 406 阅读 · 0 评论 -
Makefile基础知识
因为这个函数是用来做循环用的,Makefile中的foreach函数几乎是仿照于Unix标准Shell (/bin/sh)中的for语句,或是C-Shell(/bin/csh)中的foreach语句而构建的。过滤掉字串“TEXT”中所有符合模式“PATTERN”的单词,保留所有不符合此模式的单词。函数功能:过滤掉字串“TEXT”中所有不符合模式“PATTERN”的单词,保留所有符合此模式的单词。函数说明:“filter”函数可以用来去除一个变量中的某些字符串,我们下边的例子中就是用到了此函数。原创 2022-12-26 07:00:00 · 522 阅读 · 0 评论 -
三星S5PV210的启动
由S5PV210的地址映射图可知,0x0000,0000是在片内的iROM中,是不能修改的,SPL镜像会被加载到BL1的地方,该地方的地址为0xD002,0000,即bl。上电后会把iROM会把16K的ubootspl.bin内容加载到SRAM,绕开BL2把210K的uboot.bin加载到主存中,uboot加载并起动内核。等指令会被放在0xD002,0014的位置,当发现异常后会跳转到0x0000,0004的地方(而非0xD002,0014).原创 2022-12-25 07:15:00 · 390 阅读 · 0 评论 -
DDR知识补遗
为了速率的提升,在SDRAM读取数据时,把同步时钟的上升沿和下降沿都利用上,这样速率会比SDRAM快一倍,于是就有了DDR内存,图中的CAS-2指的是RAS与CAS之间延时两个周期。如上图DRAM的内部结构,当对DRAM进行读操作时,wrod Line选通,Sense感知Bit Line上的电平,(此时Bit Line上的值代表电容记录的状态),当对DRAM写时,Word Line选通,Bit Line上是要写的内容(根据Bit Line上的“0”,“1”通电容进行充放电),电容的状态需要不断刷新来保持。原创 2022-12-24 07:00:00 · 885 阅读 · 0 评论 -
深刻认识立即数
把数据转换成二进制形式,从低位到高位写成4位1组的形式,最高位一组不够四位的,在最高位前面补0。数1的个数,如果大于8个肯定不是立即数,如果小于等于8进行下面步骤。如果数据中间有连续的大于等于24个0, 循环左移4的倍数,使高位全为0。找到最高位的1,去掉前面最大偶数个0。找到最低位的1,去掉后面最大偶数个0。数剩下的位数,如果小于等于8位,那么这个数就是立即数,反之就不是立即数。原创 2022-12-23 07:00:00 · 394 阅读 · 0 评论 -
S3C2440的架构及启动方式
ARM芯片的构成:几条汇编代码:1. LDR(load) 读内存 LDR R0, [R1] 假设R1的值为x,读取地址x上的数据(4字节),储存到R0中(4字节)。2. STR(store)写内存 STR R0, [R1] 假设R1的值为x,把R0的值,写到地址x上去(4字节)。3. B 跳转4. MOV(move) MOV R0, R1 把R1的值赋给R0 MOV R0, #0x100 R0 = 0x1005. LDR LDR R0, =0x12345678 伪指令,它会被拆分为几条真正原创 2022-12-21 10:27:53 · 1270 阅读 · 0 评论 -
计算机体系结构
BTB——用于记录一条分支指令的跳转地址,由于这儿存储的是指令地址,例如32位地址,因此,这个表格就不能做到存储BHT那样多的内容了,如果也支持4K条指令,则需要128Kbit的存储空间,这几乎可以赶上一个L1Cache的容量了,所以BTB一般很小,就32项或者64项。如图所示,一种二级自适应预测器可以记住过去n次执行该指令时的分支情况的历史,可能的2n种历史模式的每一种都有1个专用的饱和计数器,用来表示如果刚刚过去的n次执行历史是此种情况,那么根据这个饱和计数器应该预测为跳转还是不跳转。原创 2022-12-20 10:19:28 · 494 阅读 · 0 评论