驱动开发--根文件系统

news/2024/11/16 8:36:18/

1、单片机开发属于嵌入式开发吗?

广义:单片机开发属于嵌入式开发---(嵌入式微处理器开发) 一般不带mmu(地址映射)

狭义:单片机开发不属于嵌入式 ---(Linux嵌入式开发)一般带mmu(地址映射)

2、ARM逻辑代码和驱动有什么区别?

共同点:都能操作硬件

不同点:

ARM裸机:

       1、直接操作物理地址

       2、单独编译单独执行

       3、arm裸机同时只能执行一份代码

       4、arm裸机代码只需要一个main函数即可,在main函数中编写逻辑程序

驱动:

       1、需要对物理地址进行转换-->虚拟地址

       2、依赖内核编译,依赖内核执行

       3、驱动可以同时执行多份代码(Linux操作系统具有进程管理)

       4、驱动是依赖内核的框架和操作硬件的过程,每个模块都有独立的运行任务

3、Linux系统的组成 

app     :        app       glibc    【0-3G】

---------------------------------系统调用(软中断)---------------------------------------

kernel  :                           【3-4G】

5种功能

   进程管理:进程的创建,销毁,调度等功能

   文件管理:通过文件系统ext2/ext3/ext4 yaff jiffs等来组织管理文件

   网络管理:通过网络协议栈对数据进程封装和拆解过程。

   内存管理:通过内存管理器对用户空间和内核空间内存的申请和释放 

   设备管理: 设备驱动的管理

      字符设备驱动:

1.按照字节为单位进行访问,顺序访问

2.会创建设备文件,open read  write close来访问

      块设备驱动  :

1.按照块(512字节)(扇区)来访问,可以顺序访问,可以无序访问

 2.会创建设备文件,open read  write close来访问

       网卡设备驱动:

1.按照网络数据包来收发的。

--------------------------------------------------------------------------------------------------------

hardware:led  鼠标  键盘  lcd  触摸屏  摄像头  u盘  emmc  光猫 路由器 dm9000

字符设备:LED(0/1)、鼠标(坐标点)、键盘(按压)、LCD(控制灯0/1)、摄像头

块设备:U盘、emmc

网卡设备:光猫、路由器、dm9000

4、宏内核、微内核

宏内核:将进程、网络、文件、设备、内存等功能集成到一个内核中

    特点:代码运行效率高   缺点:一部分出错整个内核就崩溃

eg:Android 、 Ubuntu

微内核:只将进程、内存机制集成到内核中,文件、设备、驱动等在操作系统外

    优点:通过API接口让整个系统运行起来   缺点:效率低  优点:稳定性强

eg:鸿蒙、Window、QNX

5.驱动移植

1)需要一个驱动对应的.c代码

 2) 将.c文件放到对应的驱动文件夹下(drivers/char)

 3)修改char文件夹下的Makefile-->连接自己的.o文件

 

 4)修改char下的Kconfig-->

 

5)去顶层目录下执行make menuconfig-->配置自己的驱动

--> Device Drivers --> Character devices --> <>this is LCD 修改为<M>this is LCD  

<*> 编译到内核里      <>不编译    <M>编译为独立模块

 

 

6)顶层目录下make modules(编译独立的驱动模块),如果配置编译到内核中执行 make uImage

7) ubuntu下(sudo insmod lcd.ko)开发板下(cp自己的驱动.ko nfs路径)insmod lcd.ko

cp lcd.ko  /opt/6818/rootfs/rootfs (nfs路径)


http://www.ppmy.cn/news/230546.html

相关文章

Tomcat的部署(贼详细)

目录 一、Tomcat服务器简介 1、Tomcat服务器 2、Tomcat三大核心组件 3、 Java Servlet 4、JSP全称Java Server Pages 5、 Tomcat 功能组件结构 6、 Container 结构分析 7、Tomcat 请求过程 二&#xff1a;Tomcat部署与安装 1.关闭防火墙&#xff0c;上传所需软件包 2.安…

JAVA练习小游戏——贪吃蛇小游戏 PLUS版

目录 基础版本 新增内容 1.添加START开始界面 2.新增背景音乐 3.添加SCORE计分 4.新增游戏机制 代码实现 实机演示 基础版本 JAVA练习小游戏——贪吃蛇小游戏_timberman666的博客-CSDN博客https://blog.csdn.net/timberman666/article/details/131046742?spm1001.201…

libVLC 抓取视频帧并渲染(OpenGL)

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 在前面,我们写了几篇文章《libVLC 抓取视频帧并渲染(QWidget)》和《libVLC 抓取视频帧并渲染(QGraphicsView)》,分别介绍了QWidget 和 QGraphicsView 对视频帧的渲染,除了这些方式之外,还有一种最常…

国产手机为何败给了苹果?因为它们已没有性价比优势

去年的iPhone13上市以来热销到春节&#xff0c;近期虽然销量有所下滑&#xff0c;但是在电商平台依然碾压众多国产手机&#xff0c;如今iPhone13进一步降价之后性价比优势凸显&#xff0c;国产手机要与iPhone竞争至少降价三分之一至一半才具有与iPhone相当的性价比。 一、国产手…

《最高人民法院 最高人民检察院 公安部关于办理信息网络犯罪案件适用刑事诉讼程序若干问题的意见》

最高人民法院 最高人民检察院 公安部关于办理信息网络犯罪案件适用刑事诉讼程序若干问题的意见 发布时间&#xff1a;2022年8月30日 为依法惩治信息网络犯罪活动&#xff0c;根据《中华人民共和国刑法》《中华人民共和国刑事诉讼法》以及有关法律、司法解释的规定&#xff0c…

nginx系统优化和内核优化

nginx系统优化 一&#xff1a;隐藏nginx版本号 方法一&#xff1a;修改配置文件 vim /usr/local/nginx/conf/nginx.confnginx -t systemctl restart nginx curl -I http://192.168.52.108方法二&#xff1a;修改源代码 vim /opt/nginx-1.24.0/src/core/nginx.h ##配置文件里…

【Spark】实验四:SparkStreaming编程初级实践

实验准备 实验目的 掌握使用 Socket编程掌握Spark Streaming的基本操作掌握Spark Streaming updateStateByKey的使用 实验内容 使用Spark Streaming构建实时数据计算系统&#xff0c;通过使用socket编程模拟用户浏览商品信息时产生的数据&#xff0c;使用Spark Streaming应用实…

微信小程序项目实例——密码管理器

今日推荐&#x1f481;‍♂️ 自疫情后武林广场的音乐喷泉再次开启⛲⛲⛲ 坐在最佳视角下观赏了一场久违的表演&#x1f386;&#x1f386;&#x1f386; &#x1f52e;&#x1f52e;&#x1f52e;&#x1f52e;&#x1f52e;往期优质项目实例&#x1f52e;&#x1f52e;&…