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 修改内存值的时候地址会自增,而使用命令
5. cp 是数据拷贝命令,用于 将 DRAM 中的数据拷贝到另一段内存中



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