嵌入式linux开发人员需要了解的几个重要的指令

2019-07-13 04:11发布

拿到一个嵌入式设备之后, 我想看看这个设备的分区情况:cat /proc/mtd 回车 我想看看它各分区挂载的文件系统是什么:mount 回车 我想看看它的arm版本及主频:cat /proc/cpuinfo 回车 我想看看整个外界内存芯片的容量: 我想看看linux os占用的整个内存容量: cat  /proc/meminfo |grep  MemTotal  回车 我想看看booloader给内核的启动命令内容:cat /proc/cmdline 回车 我想看看它支持的文件系统:cat /proc/filesystems 回车 我想看看各个设备模块的中断情况:cat /proc/interrupts 回车 我想看看各个系统硬件设io mem地址空间的资源划分情况:cat /proc/iomem 回车 【对应开发中的ioremap,reques_mem_region,重要】 我想看看各个外围设备的io端口空间的划分况情况:cat /proc/ioports 回车 【ioports是x86里面的io管理设计思想,在arm里可以忽略】 我想看看整个flash芯片的大小:dmesg |grep  size   对于开发驱动的人来讲,一个驱动是不是加载成功,甚至是这个设备是不是都已经被内核所识别,那就请把目光移到这里: 这种查看的方法的前提是必须遵从linux设备驱动模型来开发的,那从这个出发点来讲,我们说在linux设备模型下进行设备驱动开发,一般遵从驱动开发三步曲: (1)总线设备及总线驱动注册,(2)待开发设备添加到总线;(3)待开发设备的驱动注册到总线。完事。 所以我们想想看看我们要开发的驱动是不是正常,可以按部就班的先查看下,这个设备所在的总线是不是已经注册到内核(或者说添加到platform bus上): ls /sys/bus 回车,或ls /sys/devices/platform/  回车,看是否有相应的总线适配器设备在里面; 继续,再查看下这个设备是不是已经添加到总线: ls /sys/devices/platform/xxx_bus/ 回车 或 ls /sys/bus/xxx_bus/device/  回车 查看该总线下的子设备是不是有我们添加的设备名。 最后,我想看看我要开发驱动是不是已经注册到总线(: ls /sys/bus/xxx_bus/driver/  回车 查看该总线下的驱动链表里,是不是有我们添加的驱动,或直接到/dev/xxx_node找我们要使用的设备节点文件在不在。   如果不是以设备驱动模型区开发的,那么就直接查看: /proc/devices是不是有对应的主设备号及次设备号。   内存方面: 虚拟内存VM是linux很重要的概念在linux内核中vm分为ram部分和swap部分,linux的虚拟内存子系统就是负责在后台对ram和swap进行维护管理,分配资源的。   块设备方面: mtdcheck ,mtddebug,nandread ,nandwrite,nandscrup,flash_erase,nm等工具要经常使用   文件系统方面: 看似平台堕入linux文件系统组织结构下,每个平凡的目录节点下可能挂载的是一个不甘寂寞的文件系统:包括了建立在块设备上的,以及建立在ram上的: 比如jffs2,squash,yaffs2,建立在ram上的如proc,sys,tmpfs等,建立在虚拟磁盘上的ramdisk,如jffs2等等均可选择。