sheldon_blogs

2016年9月12日

Linux学习 :字符设备框架

摘要: 一.系统功能框架: U-boot : 启动内核 linux kernel: 启动应用 应用: open,read,write 都是通过C库实现,汇编就相当于swi val,引发中断,通过系统调用接口在异常中断调用不同处理函数(VFS)。 二.字符设备驱动框架: 1.编写驱动:open , read, 阅读全文

posted @ 2016-09-12 17:42 sheldon_blogs 阅读(518) 评论(0) 推荐(0)

2016年9月5日

Linux学习 :Uboot, Kernel, 根文件系统初步分析

摘要: 1.U-Boot启动内核的过程可以分为两个阶段: 1)第一阶段的功能 硬件设备初始化 加载U-Boot第二阶段代码到RAM空间 设置好栈 跳转到第二阶段代码入口 2)第二阶段的功能 初始化本阶段使用的硬件设备 检测系统内存映射 将内核从Flash读取到RAM中 为内核设置启动参数 启动内核 关于ub 阅读全文

posted @ 2016-09-05 19:40 sheldon_blogs 阅读(660) 评论(0) 推荐(0)

2016年9月4日

Linux学习 : 裸板调试 之 配置UART

摘要: 1、UART原理说明 发送数据时,CPU将并行数据写入UART,UART按照一定的格式在一根电线上串行发出;接收数据时,UART检测另一根电线上的信号,串行收集然后放在缓冲区中,CPU即可读取UART获得这些数据。UART之间以全双工方式传输数据,最精确的连线方法只有3根电线:TxD用于发送数据,R 阅读全文

posted @ 2016-09-04 17:42 sheldon_blogs 阅读(1722) 评论(0) 推荐(0)

Linux学习 : 裸板调试 之 配置使用NAND FLASH

摘要: 关于NAND FLASH的结构是以页为单位写,以块为单位来擦除: 1Gb 为大页 page=2048Kb BLOCK=128K 512Mb 为小页 page=512byte BLOCK=16K PS:一页还有额外64字节OOB块,通常不计入读取范围。 另一个区别就是ECC的验证: ECC是每256个 阅读全文

posted @ 2016-09-04 16:56 sheldon_blogs 阅读(1880) 评论(0) 推荐(0)

2016年9月3日

Linux学习 : 裸板调试 之 使用MMU

摘要: MMU(Memory Management Unit,内存管理单元),操作系统通过使用处理器的MMU功能实现以下:1)虚拟内存。有了虚拟内存,可以在处理器上运行比实际物理内存大的应用程序。为了使用虚拟内存,操作系统通常要设置一个交换分区(通常是硬盘),通过将不活跃的内存中的数据放入交换分区,操作系统 阅读全文

posted @ 2016-09-03 20:55 sheldon_blogs 阅读(1792) 评论(0) 推荐(0)

Linux学习 : 裸板调试 之 设置存储管理器,使用SDRAM

只有注册用户登录后才能阅读该文。 阅读全文

posted @ 2016-09-03 17:30 sheldon_blogs 阅读(13) 评论(0) 推荐(0)

Linux学习 : 裸板调试 之 led控制

只有注册用户登录后才能阅读该文。 阅读全文

posted @ 2016-09-03 16:03 sheldon_blogs 阅读(20) 评论(0) 推荐(0)

2016年3月19日

Linux I2C总线控制器驱动(S3C2440)

摘要: s3c2440的i2c控制器驱动(精简DIY),直接上代码,注释很详细: 附一份测试程序: Make File: 阅读全文

posted @ 2016-03-19 14:42 sheldon_blogs 阅读(781) 评论(0) 推荐(0)

2016年3月13日

Linux I2C总线设备驱动模型分析(ov7740)

摘要: 1. 框架1.1 硬件协议简介1.2 驱动框架1.3 bus-drv-dev模型及写程序a. 设备的4种构建方法a.1 定义一个i2c_board_info, 里面有:名字, 设备地址 然后i2c_register_board_info(busnum, ...) (把它们放入__i2c_board_ 阅读全文

posted @ 2016-03-13 18:52 sheldon_blogs 阅读(2286) 评论(0) 推荐(0)

2016年1月10日

Linux摄像头驱动学习之:(六)UVC-基本框架代码分析

摘要: 仿照内核的自带UVC(usb video class)驱动程序写的一版简化驱动,仅供学习,实际项目开发中应该尽量使用内核自带的驱动,除非内核自带的驱动不支持此款硬件才需要自己写驱动。 下面就直接上代码了,要根据自己的设备信息修改相关配置参数。 阅读全文

posted @ 2016-01-10 14:19 sheldon_blogs 阅读(15990) 评论(0) 推荐(0)

导航