- 博客(8)
- 收藏
- 关注
原创 入职一年多的感想
不知不觉自己已经工作接近一年,通过校招进入了某通讯大厂,非科班出身,本职转业电气工程,非通讯专业,但是对技术还是抱有一定的希望,研究生阶段自学嵌入式linux,基本上懂得一些arm板的裸机开发,接着学习linux系统的移植,学习简单linux驱动的开发。但基本都是看的多,实际操作和调试的比较少,大部分都是修修改改,驱动的框架基本类似,重要的可以看懂手册,懂得基本的寄存器操作,很容易上手。而且个人觉得搞嵌入式,基本功还是c语言,把c语言玩的6一些,干嵌入式很容易。现在工作快满一年了,校招签的是基带开发,当时
2021-06-05 19:08:17
232
4
原创 Linux驱动程序之分层分离概念_总线驱动设备模型
一、驱动程序的分离分层:分离:把硬件相关的东西抽出来;把相对稳定的软件部分抽出来。 分层:input.c 向上提供统一给 APP 操作的统一接口。每一层专注于自已的事件。一边的“device”结构体和另一边的“较稳定的 drivice 代码”的联系: “device_add()”除了将“devcie”结构放到 bus 的“dev 链表”之外,还会从另一边的“drv”...
2019-09-01 15:03:46
263
原创 设备树(三)
第四课. u-boot对设备树的支持第01节_传递dtb给内核 : r2a. u-boot中内核启动命令: bootm <uImage_addr> // 无设备树,bootm 0x30007FC0 bootm <uImage_addr> <initrd_addr> <dtb_add...
2019-09-01 14:19:05
438
原创 设备树(二)
一、内核head.S对dtb的简单处理第01节bootloader启动内核时,会设置r0,r1,r2三个寄存器,r0一般设置为0;r1一般设置为machine id (在使用设备树时该参数没有被使用);r2一般设置ATAGS或DTB的开始地址bootloader给内核传递的参数时有2种方法:ATAGS 或 DTBa. __lookup_processor_type : ...
2019-09-01 14:17:15
279
原创 设备树(一)
1、字符设备驱动程序的三种写法a. 驱动程序编写有3种方法:传统方法、使用总线设备驱动模型、使用设备树b. 这3种方法也核心都是一样的: 分配、设置、注册 file_operations结构体 这个结构体中有.open, .read, .write, .ioctl等成员 驱动程序要实现这些成员,在这些成员函数中操作硬件c. 这3种方法的差别在于:如何指定硬件资源,比如如何指定LE...
2019-09-01 14:11:36
543
原创 linux内核设备驱动简单分析
一、字符设备驱动程序先来张图吧!1、写应用的人,直接用:open,read,write等,标准的接口,调用我们的驱动程序。那应用程序怎么会调用我们的驱动里的open、read、write的呢?中间有哪些东西呢?实际上,应用程序的open,read,write是c库实现的,通过swi val这条汇编指令进入内核,相当于引发一个异常,进入到内核的异常处理函数里面,根据异常发生的原因...
2019-09-01 13:52:32
259
原创 嵌入式开发中遇到的几个问题(一)
以下遇到的问题,开发环境都是基于s3c24401、在start.s文件中,用汇编写初始化程序时,为什么加死循环?假设程序只有十几字节,那么把bin文件烧到nor或者nand中,那这十几字节之后的内容,是不确定的,所以只能死循环,所以只能死循环,否则后果无法预料。2、LDR R0,=0x12345678 :R0=0x12345678 怎么理解它?它是一条伪指令,我们知道arm指令是3...
2019-08-15 21:23:30
1219
原创 嵌入式linux下常用的命令
1、mkdir :新建目录2、touch :新建文件3、cp :复制文件4、cat :将文件内容显示到终端里面5、rm :删除文件6、rmdir:删除目录7、clear:清除屏幕的显示内容8、ls :列出目录内容9、cd :切换路径10、man :查询这些项的含义11、tar : 解压12、grep ...
2019-08-15 20:55:30
391
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人