摘要:
<获取开发工具> 到https://www.golangtc.com/download 下载安装包, 根据自己的系统选择合适的开发包,这里选择go.1.9.2.linux-amd64.tar.gz <搭建开发环境> ➤为golang 配置PATH环境变量 解压文件,将解压后的文件拷贝到"/usr/l 阅读全文
摘要:
<概述> Linux启动大致分为一下几个步骤,详细的启动步骤在<启动分析>中详解。 <概述> Linux启动大致分为一下几个步骤,详细的启动步骤在<启动分析>中详解。 1:首先bios加电自检,初始化(这个过程会检测相关硬件(cpu,内存,显卡,硬盘等)) 1:首先bios加电自检,初始化(这个过程 阅读全文
摘要:
<什么是Linux输入设备> ➤简介 Linux输入设备总类繁杂,常见的包括有按键、键盘、触摸屏、鼠标、摇杆等等,他们本身就是字符设备,而linux内核将这些设备的共同性抽象出来,简化驱动开发建立了一个input子系统。子系统共分为三层,如图1所示。 图1 input输入子系统 ➣驱动层 驱动层和硬 阅读全文
摘要:
<hash表的特性> Hash 表是使用 O(1) 时间进行数据的插入删除和查找,但是 hash 表不保证表中数据的有序性,这样在 hash 表中查找最大数据或者最小数据的时间是 O(N) 。 <寻址和 hash 函数> 理想状态下 hash 足够大,每一数据保存在一个 hash 存储单元内,这样对 阅读全文
摘要:
➤背景 一般情况下,Linux系统中,进程的4GB内存空间被划分成为两个部分 用户空间和内核空间,大小分别为0~3G,3~4G。用户进程通常情况下,只能访问用户空间的虚拟地址,不能访问到内核空间。每个进程的用户空间都是完全独立、互不相干的,用户进程各自有不同的页表。而内核空间是由内核负责映射,它并不 阅读全文
摘要:
➤字节顺序有“大端模式” 和 “小端模式” 两种 ➣字节顺序只是对内置数据类型而言,例如对于一整型(int,int 是内置数据类型)数,比如 0x123456 大端模式: 高地址 >低地址 0x56 | 0x34 | 0x12 小端模式: 高地址 >低地址 0x12 | 0x34 | 0x56 但对 阅读全文
摘要:
S3C2440集成了丰富了外设控制器(LCD控制器、USB Device控制器、USB Host控制器、NAND FLASH控制器、I2C控制器、SPI控制器等)。要控制这些外设就要设置相应控制器的寄存器以产生相应的驱动时序。学习S3C2440,主要是如何配置寄存器。下面是S3C2440特殊功能寄存 阅读全文
摘要:
<背景> MMU即内存管理单元(Memory Manage Unit),是一个与软件密切相关的硬件部件,也是理解linux等操作系统内核机制的最大障碍之一。可以说,不懂MMU使很多人一直停滞在单片机与无OS的时代。 <虚拟地址/物理地址> a:如果处理器没有MMU,CPU内部执行单元产生的内存地址信 阅读全文
摘要:
<简介> LCD驱动里有个很重要的概念叫帧缓冲(framebuffer),它是Linux系统为显示设备提供的一个接口,应用程序在图形模式允许对显示缓冲区进行读写操作。用户根本不用关心物理显示缓冲区的具体位置及存放方式,因为这些都由缓冲区设备驱动完成了。 启动开发板后执行ls /dev/fb* 命令可 阅读全文
摘要:
<什么是液晶> 我们一般认为物体有三态:固态、液态、气态,其实这只是针对水而言,有一些有机化和物 还有介于固态和液态中间的状态 就是液晶态,如下图(一): 图(一) <TFT LCD显示原理> a:背景 两块偏光的栅栏角度相互垂直时光线就完全无法通过,图(六)是用偏光太阳镜做的测试。 图(六) b: 阅读全文