当前位置: 首页 > web >正文

linux

1、linux 驱动层到应用层的重要接口 sys 文件系统 --- /sys 目录详解

转载:linux驱动层到应用层的重要接口sys文件系统---/sys目录详解 - 蠻蠻 - 博客园

sysfs 文件系统整理设备驱动相关的文件节点,可以拥有类似proc文件系统一样查看系统相关信息的功能,最重要的是可以将 sysfs 把连接在系统上的设备和总线组织成分级的文件,使其从用户空间可以访问或者配置

/sys 的子目录主要包括 

1. Block 在系统中每个块设备在该目录下对应一个子目录,比如说过mmcblk0对应eMMC 主节点

2.Bus 在内核中注册的总线,每个总线文件夹中有对应的两个子目录,devices 和 drivers .devices 主要是包含在整个系统中发现的属于该总线类型的设备,drivers,则主要是注册到该总线的所有驱动。

3.Class : 将设备按照功能进行分类

4.Devices 包含系统所有的设备 与设备树描述的设备层次使相互对应的

5.Kernel 内核中的配置参数

6.Module 系统中所有模块的信息

2、Linux下的知识点主要是包括

1.系统移植(uboot 、Linux kernel、rootfs)

2.linux 的驱动开发

3、Linux下 rtc 硬件时钟和系统时钟的区别

rtc时钟又称为硬件时钟

系统时钟就是指在上电以后芯片继续运行的时钟

4、Linux下物理内存直接读写工具devmem

devmem读写物理内存和devkmem读取内核虚拟内存 - ArnoldLu - 博客园

devmem 是可以在应用层监测内存地址中的数据变化,来检测驱动中对内存或者相关配置的正确性验证,也就是通过/dev/mem 实现对物理内存的读写

5、Zynq软件的启动流程

1.BootRom 初始化SD卡等外设 读取引脚配置(Bootmode) 加载镜像到 OCM (通常是fsbl)

2.FSBL 初始化PS 加载比特流配置文件 加载SSBL到DDR

3.U-Boot 启动 Linux 内核

启动过程中的uboot ,其实 uboot 就是一个裸机程序,上电的第一时间会去初始化寄存器,进行硬件自检,然后会去配置启动参数,这个启动参数主要是一些环境变量还有就是配置一些启动过程,接着就是会加载和传递设备树,这个时候会将对应的文件 boot.bin 传递到内核里面,传递进去以后就会加载内核镜像并调用内核入口

然后控制权就给了内核,内核第一步做的就是初始化硬件,(MMU和定时器),然后内核会解析和初始化设备树,此时内存管理初始化执行完毕,此时就开始加载内核模块并挂载根文件系统

根文件系统挂载上以后首先会启动 init 进程,这个是 0号进程,这个会读取系统配置文件,然后回启动初始化脚本,进入用户空间

6、U-Boot 是一个开源的引导程序,用于嵌入式系统的启动过程,用作引导加载程序

        Linux 大内核中包含有很多的子系统,主要分为用户空间和内核空间

根文件系统 :  相较于普通的文件系统,根文件系统是内核启动时所挂载的第一个文件系统,系统引导启动程序会在根文件系统挂载后从中把一些初始化脚本和服务加载到内核中去运行

7、Uboot 下的部分测试命令

printenv 输出环境变量

setenv 用于设置或者修改环境变量的值

saveenv 用于保存对应的环境变量

内存操作命令 : 内存操作命令会直接对 DRAM 进行读写操作,常用的内存操作命令有 md nm mm mw cp cmp 

1. md 命令显示内存值  md [.b .w .J] addr [#of obj]    // mem display

2.nm 命令用于修改指定地址的内存值  nm [.b, .w, .l] address 

3.mm 命令也是修改指定地址内存值的,使用 mm 修改内存值的时候地址会自增,而使用命令

nm 的话地址不会自增
4.命令 mw 用于使用一个指定的数据填充一段内存,命令格式如下:
mw [.b, .w, .l] address value [count]

5. cp 是数据拷贝命令,用于 将 DRAM 中的数据拷贝到另一段内存中

cp [.b, .w, .l] source target count
cp 命令同样可以以.b、.w 和.l 来指定操作格式,source 为源地址,target 为目的地址,
count 为拷贝的长度
6.cmp 是比较命令,用于比较两段内存的数据是否相等
        cmp [.b, .w, .l] addr1 addr2 count
7. bootm 指令 和 bootz 指令
8、U-Boot 顶层 Makefile
会有一个初始化函数数组,遍历这个数组可以进行相关的初始化操作,数组中主要包括初始化日志,初始化定时器,初始化环境变量,波特率等。

9、uboot 中bootz 命令和 bootm  命令的区别

http://www.xdnf.cn/news/2508.html

相关文章:

  • Maven 使用教程
  • C语言复习笔记--内存函数
  • 土壤有机质含量
  • adb常用的20个命令
  • java_基础Java 转义字符学习笔记
  • Top-k问题的解法
  • 在线重定义——分区表改造
  • 收藏按钮变色问题
  • 18.电源滤波器的量化选型方法
  • IP地址如何切换到国内别的省份?一步步指导
  • 蓝桥杯 11. 打印大X
  • 设计模式每日硬核训练 Day 16:责任链模式(Chain of Responsibility Pattern)完整讲解与实战应用
  • 从零到精通:深入剖析GoFrame的gcache模块及其在项目中的实战应用
  • 实现 Babylon.js 鼠标输入管理单例 (MouseController) 的最佳实践
  • WebGIS面试题目整合资料
  • 分享!RASP的技术应用
  • 鸿蒙OSS文件(视频/图片)压缩上传组件-能够增删改查
  • 软件功能设计视角下的能源管理系统功能清单构建与实践​
  • 构建事件驱动的云原生后端系统 —— 从设计到实践
  • 多模态大语言模型arxiv论文略读(四十五)
  • 【数据结构_堆
  • 虚函数表的设计和多态的实现
  • 《AI大模型应知应会100篇》第38篇:大模型与知识图谱结合的应用模式
  • 计算机三大主流操作系统的前世今生 - Linux|macOS|Windows
  • 多商户 | 可二次开发【全开源】小程序源码商城挑选指南!
  • SQLMesh 测试自动化:提升数据工程效率
  • 【MySQL专栏】MySQL数据库表的内外连接
  • PostgreSQL psql 命令和常用的 SQL 语句整理
  • Support for password authentication was removed on August 13, 2021
  • 顺风车app订单系统框架设计