UART协议时序总结

UART使用异步模式工作,不需要时钟信号,其一般格式为:起始位+数据位+校验位+停止位。其中起始位1位,数据位5~8位,校验位0或1位,停止位1、1.5或2位。不过最常用的格式是1位起始位、8位数据位、没有奇偶校验、1位停止位,简记为8/N/1

8/N/1格式的时序图如下:

汇编文件后缀.s与.S的区别

使用GCC(准确说是GCC调用了as汇编器)处理汇编代码时,汇编文件的后缀有两种:.s.S。这两种文件都是汇编代码,其区别在于:

.s格式的汇编文件中,只能包含纯粹的汇编代码,汇编器只对其进行汇编操作,没有预处理操作;
.S格式的汇编文件中,还可以使用预处理命令,汇编器会先进行预处理,然后再进行汇编。

预处理命令以#开头,基本与C语言中的预处理命令相同,包括#define#include#if#endif等。在U-Boot和Linux内核源码中,这些汇编预处理命令用得十分广泛。

在U-Boot中添加自定义命令以实现自动下载程序

U-Boot中通过NFS下载程序是一种很普遍的方式,然而下载程序的过程并不能只用一条命令实现。以下载到NOR Flash中为例,一般需要以下几步:

  1. 通过NFS将文件下载到内存中;
  2. 解除NOR Flash写保护;
  3. 擦除NOR Flash;
  4. 写入NOR Flash。

每一步都需要手动输入命令,十分麻烦,所以我们可以在U-Boot中添加一个自定义命令download,以实现一键全自动下载的目的。下面就来介绍一下实现方法。

VMware虚拟机中嵌入式Linux开发环境网络配置

嵌入式Linux开发中,主机一般在VMware上运行Ubuntu等桌面Linux系统,主机与板子之间通过网线连接,以实现文件挂载、通信等目的。此时我们希望Ubuntu系统既能正常访问互联网,又能和板子进行通信。解决方法是添加两块网卡,第一块使用NAT方式,第二块使用桥接方式桥接到有线网卡上。第一块网卡(eth0)用于上网,配置为DHCP自动获取地址;第二块网卡(eth1)用于和板子连接,配置为静态IP。这样就可以同时满足这两个需求了。

U-Boot 2016.05 在S3C2440上的移植(2)——NOR Flash

移植好基本框架能运行后就可以开始移植NOR Flash了,需要让U-Boot支持实际硬件平台中的NOR Flash。开发板上使用的NOR Flash型号为EN29LV160B,1024K * 16-bit。U-Boot中默认没有对此型号NOR Flash的支持,故需要添加相关代码。

U-Boot对NOR Flash的检测有两种方法,使用Legacy方法进行检测和使用CFI接口进行检测,下面将分别介绍这两种方法。其中使用CFI接口进行检测应该是更好的方法,优先使用此方法。