嵌入式Linux
90後_小熊大
Don't go through life, grow through life.
展开
-
嵌入式Linux开发——(一)开发环境基础知识
一、交叉编译工具(编译出能在ARM平台上运行的程序)1)文件生成过程:①预处理:事先将“#”开头的文件加入进去②编译:C/C++ ----->汇编代码③汇编:汇编代码----->机器代码④连接:将生成的目标文件(OBJ)和系统的OBJ文件、库文件 连接起来2)编译器各个选项①arm-linux-gcc选项 -o -S -E -v ...原创 2018-09-02 17:03:40 · 1567 阅读 · 0 评论 -
嵌入式Linux开发——(二)存储控制器
一、存储控制器1)利用存储控制器访问外设 S3C2440:BANK0---BANK7 每个BANK大小为128MB 总的大小:8*128MB = 1GB BANK0---BANK6:起始地址固定 BANK7:起始地址可编程 BANK6---7:地址空间大小可编程控制2)存储控制器与外设的关系(大致关系)...原创 2018-09-02 17:14:45 · 377 阅读 · 0 评论 -
嵌入式Linux开发——(三)内存管理单元MMU
一、内存管理单元mmu(Memory Management Unit)1)作用: 负责虚拟地址到物理地址的映射,并提取硬件机制的内存访问权限检查。2)S3C2410 / S3C2440的特征: ①4种映射长度:段(1MB)、大页(64KB)、小页(4KB)、极小页(1KB)3)地址转换: 为何需要虚拟地址映射到物理地址?①实际程序可能很大,需要的内存...原创 2018-09-02 17:33:27 · 1032 阅读 · 0 评论 -
嵌入式Linux开发——(四)Nand Flash控制器
1)介绍<K9F1208U0M> ①Nand Flash在嵌入式系统中的地位与PC上的硬盘类似,用于保存系统运行所必需的操作系统、应用程序、用户数据、运行过 程中产生的各类数据。与内存掉电后数据丢失不同,Nand Flash中的数据在掉电后仍可永久保存。 ②Nand Flash 与Nor Flash 对比: ③Flas...原创 2018-09-02 20:42:50 · 370 阅读 · 0 评论 -
嵌入式Linux开发——(五)中断体系结构
一、中断体系结构1)ARM体系CPU的7种工作模式 ①:7种工作模式: A、用户模式(usr):ARM处理器正常的程序执行状态 B、快速中断模式(fiq):用于高速数据传输或通道处理 C、中断模式(irq):用于通用的中断处理 D、管理模式(svc):操作系统使用的保护模式 E、数据访问终止模式...原创 2018-09-02 21:24:43 · 887 阅读 · 0 评论 -
嵌入式Linux开发——(六)系统时钟和定时器
一、系统时钟和定时器1)S3C2440 / S3C2410时钟体系 ①3种时钟: A、FCLK: 用于CPU B、HCLK: 用于AHB总线上设备,比如CPU核、存储控制器、中断控制器、LCD控 制器、DMA和USB主机模块等 C、PCLK: 用于APB总线上的设备,比如WATCHDOG、IIS、IIC、PWM控制器、MMC 接口...原创 2018-09-02 21:53:58 · 1327 阅读 · 0 评论 -
嵌入式Linux开发——(七) IIC接口
1)IIC总线协议(Inter-Integraed-Circuit) ①特点: A、只有两条总线线路,一条串行数据线(SDA),一条串行时钟线(SCL) B、器件通过地址来识别 C、数据传输设备间是主、从关系 ②术语: 发送器、接收器、 主机:发起/停止数据传输 从机...原创 2018-09-02 22:05:30 · 560 阅读 · 0 评论 -
嵌入式Linux开发——(八)LCD控制器
1)LCD显示器 ①LCD(Liquid Crystal Display)液晶显示器种类: A、STN B、TFT C、LTPS D、OLED2)LCD控制器 ①1字为4字节 ②一幅图像被称为一帧(frame),每帧由多行组成,每行由多个像素组成,每个像素的颜色使用若干位数据来表示,对于256色 ...原创 2018-09-08 19:47:01 · 607 阅读 · 0 评论 -
嵌入式Linux开发——(九)ADC和触摸屏
一、ADC和触摸屏接口1、ADC硬件介绍 ①S3C2410 / S3C2440 ADC和触摸屏特性: A、分辨率:10位 B、最大转换速率:500K SPS(Sample Per Second) C、输入模拟电压范围:0---3.3V D、普通转换模式 E、分离的X / Y 轴坐标转换模式 ...原创 2018-09-08 19:52:58 · 663 阅读 · 0 评论 -
嵌入式Linux开发——(十)移植u-boot
1、Bootloader简介 ①Bootloader是这么一小段程序,它在系统上电时开始执行,初始化硬件设备,准备好软件环境,最后调用操作系统内核。 ②Bootloader的实现非常依赖于具体硬件,在嵌入式硬件配置中千差万别,即使是相同的CPU,它的外设也可能不同,所以不可能有一个Bootloader支持所有的CPU电路板。 ③CPU上电后,会从某个地址开始执行,AR...原创 2018-09-08 20:02:25 · 444 阅读 · 0 评论 -
嵌入式Linux开发——(十一)u-boot源码分析
1、U-Boot的特性: ①开放源码 ②支持多种嵌入式操作系统内核:Linux、NetBSD、VxWorks、QNx、RTEMS、ARTOS、 LynxOS ③支持多种架构的CPU:PowerPC、ARM、x86、MIPS、XScale ④丰富的设备驱动源码,如:串口、以太网、SDRAM、Flash等 ⑤支持的目标板环境变量多种存储方式:Flash...原创 2018-09-11 23:40:49 · 1049 阅读 · 0 评论 -
嵌入式Linux开发——(十二)u-boot注意事项
1、增加新功能: ①同时支持本书使用的S3C2440和S3C2410开发板 ②支持串口xmodem协议 ③支持网卡芯片CS8900 ④支持NAND Flash 读写 ⑤支持烧写yaffs文件系统映象 2、通过读取GSTATUS1寄存器的值可以区分S3C2410和S3C2440 0x32410000表示S3C2410 0x...原创 2018-09-11 23:43:35 · 202 阅读 · 0 评论 -
嵌入式Linux开发——(十三)u-boot常用命令
1、帮助命令help运行help命令可以看到U-Boot中所有命令的作用,如“help bootm”可以用“?”来替代,比如“?Bootm”。2、下载命令Boot支持串口下载、网络下载,相关命令有:loadb、loads、loadx、loady和tftpboot、nfs。 ①loadx [off] [baud] “[ ]”中参数可以省略,off表示文件下载...原创 2018-09-11 23:49:10 · 239 阅读 · 0 评论 -
嵌入式Linux开发——(十四)移植Linux内核
基于Linux2.6.22.61、相关常识 ①VERSION = 2 PATCHLEVEL=6 主版本号,稳定版本用偶数来表示,每隔2~~3年出现一个稳定版 ②SUBLEVEL=22 次版本号,每隔1~~2个月一更新 ③EXTRAVERSION = .6 扩展版本号 ④获取内核网址:http://www.ke...原创 2018-09-12 00:08:06 · 4145 阅读 · 0 评论 -
嵌入式Linux开发——(十五)移植YAFFS文件系统
一、移植YAFFS文件系统1)YAFFS文件系统的介绍 ①YAFFS(yet another flash file system)是一种类似于JFFS / JFFS2,专门为NAND Flash设计的嵌入式文件系统,适用于大 容量的存储设备 ②日志结构的文件系统,提供了耗损平衡和掉电保护 ③与JFFS相比,减少了一些功能,因此速度更快,占用内存...原创 2018-10-04 23:24:56 · 758 阅读 · 0 评论 -
嵌入式Linux开发——(十六)Linux内核调试技术
1、内核打印函数printk ①printk函数与printf函数用法格式完全相同 ②它所打印的字符串头部可以加入“<n>”样式字符,n=0---7表示这条信息的记录 级别 ③对于printk(“<n>......”)只有n小于console_loglevel时,这条信息才会被打印 ④ # cat /proc/sys/ker...原创 2018-10-04 23:31:02 · 871 阅读 · 0 评论 -
嵌入式Linux开发——(十七)Linux设备驱动开发
一、字符设备驱动程序1)应用程序、库、内核、驱动程序的关系2)Linux驱动程序的分类和开发步骤 ①Linux的外设可分为3类:字符设备(character device)、块设备(block device)、网络接口(network interface) A、字符设备:能够像字节流一样被访问的设备,就是说对它的读写以字节为单位,比如串口 ...原创 2018-10-04 23:36:19 · 322 阅读 · 0 评论