随笔分类 - 嵌入式开发——JZ2440/IMX6ULL
我和韦东山老师的相遇
摘要:通过前面的学习,我们知道,把可执行程序从一个位置复制到另一个位置的过程叫做重定位。 现在有两种方式,第一种是只重定位data段到内存(sdram),为什么需要重定位?因为有些flash的写操作,不是简单地内存访问,通常我们使用sdram这个介质作为程序运行的载体。但是只重定位data段这种方式存在弊
阅读全文
摘要:上一篇随笔说了,需要清除bss段,我们现在定义main函数如下: 注意这个全局变量是没有初始值的,即存放在bss段中,如果我们的启动文件没有清除bss段,串口的输出将是你想不到情况。比如,现在程序运行执行了++操作20次,你下次快速断电再上电的时候,g_Char2的值是接着之前的值增加的,而增加了清
阅读全文
摘要:上篇随笔写了一个连接脚本,如果你不想看那个复杂的ld连接脚本文章,看我上一篇和这篇随笔就可以做到编写目前我们够用的连接脚本了,本章的知识点全部来自那篇文章。 先看连接脚本的格式: 其中有一些东西我们是不会用到的: 第一个,段名,这个我们可以随便取,但是一般按照.data .text等这样的名字,也可
阅读全文
摘要:关于段的脚本语法编写可以参考: 参考资料:Using LD, the GNU linker 关于重定位可以参考我之前的一篇随笔: ld,连接器 简单通俗一点来说,就是把可执行代码放在内存的另一个地方去。 比如,我的bin文件烧写在nor flash上,在前2k存放代码段,紧接着存放.data段,此时
阅读全文
摘要:对于2440而言,nand启动,nand的前4k内容由硬件复制到sram。 nor flash,可以像内存一样读,但是不能像内存一样写,执行写操作需要特殊的操作。 程序中包含有需要写的全局或者静态变量,它们在bin文件中,写在nor flash上,直接修改这样的变量是无效的。 到底什么意思呢?还是看
阅读全文
摘要:前面我们实验的LED和串口程序,是cpu发送地址给特定的寄存器,在寄存器中写相应的位,达到控制要求。 第一类是GPIO门电路如LED,第二类是协议类如串口,这些都不是cpu直接给地址信息,而是通过寄存器来控制的。 第三类是内存接口,cpu发出的地址可以直接传递给这种设备如nor flash,sdra
阅读全文
摘要:2440A有三个串口,我们使用串口0对它进行了解熟悉。 首先肯定是应该找到手册上串口0所对应的引脚,然后配置相应寄存器。 串口0对应GPIO H的 2,3 串口在单片机中我们已经有很多使用经验了,对于协议采用 8-N-1,8bit数据位,无校验,1停止位。 说明波特率的计算方式: 把串口对应IO配置
阅读全文
摘要:任意一款单板,我们了解其时钟都是通过时钟树来的。 这里没有全部截完,只是讲解时钟来源,OSC代表晶振,这说明我们的时钟可以来至晶振OSC也可以来至外部输入EXTCLK,这是通过OM选择器来完成的。 2440的时钟,分为主时钟和usb时钟,先说主时钟,usb时钟之后用到的时候再说。 要如何配置FCLK
阅读全文
摘要:在上一篇进行了汇编语言的编写之后,我们采用C语言来编写程序,毕竟C语言才是我们使用最多的语言。 仅仅是点亮LED灯显然太过于简单,我们需要分析最后的反汇编,了解函数调用栈,深入C语言骨髓去分析代码,并且自己编写C语言的库函数版本,方便以后开发,同时也是对自己C语言封装能力的锻炼。 先贴韦老大的代码:
阅读全文
摘要:在几个月前看2440视频的时候,发现太多知识欠缺,购买开发板期间补习makefile,linux,arm汇编和arm构架之后,现在重新开始学习。 先看板子LED硬件连接图: 可以看到LED 1,2,4连接GPF4,5,6。故,查看芯片手册GPF IO口: 有寄存器地址,有对应位的功能,剩下的就是我们
阅读全文
摘要:交叉编译器是嵌入式开发的必要工具,但是由于目前大多数人使用64位ubuntu,在照着很多教程做的时候,就会失败,失败原因是64位ubuntu需要额外安装32位的兼容包。以arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2这个压缩文件为例子。执行解压命令:sudo tar
阅读全文
摘要:如同学基本语言一样,helloworld是很多语言的第一个程序。在嵌入式开发中,点亮LED灯也是各种架构和开发板的第一个程序,其中很多东西是和单片机例如stm32是类似的,只是,现在我们没有了库函数,我们要自己完成一些东西。 先说启动文件,st官方已结给我们做好了,但是jz2440开发板没有统一的启
阅读全文
摘要:SRAM:SRAM(Static Random Access Memory),即静态随机存取存储器。它是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据。SRAM不需要刷新电路即能保存它内部存储的数据。而DRAM(Dynamic Random Access Memory)每隔一段时
阅读全文
摘要:看韦老师操作各种软件倒是流畅,但是自己要是并不清楚某些软件的功能,就需要补充自己的知识盲点。例如玩单片机,我们都知道串口调试助手,可以在win上和单片机通信,接发数据,要是只知道串口调试助手,不知道它怎么用,那就不可能学得好。下面先补充基本工具的知识点。 SecureCRT SecureCRT是Va
阅读全文
摘要:不得不说韦老师的课程还是很需要时间去消化。今天改变了学习策略,遇到不会的知识点,先查资料。 以前在单片机编程中,都只是知道代码存在flash中,而一听韦老师的课程,就是nand flash启动或者nor flash启动,所以找了一些这方面的参考资料弥补自己知识的空白。 快闪存储器(英语:flash
阅读全文

浙公网安备 33010602011771号