Linux
文章平均质量分 71
weixin_43771853
这个作者很懒,什么都没留下…
展开
-
【Linux文件系统】NFS文件系统如何生效
网络文件系统(NFS)是文件系统之上的一个网络抽象,来允许远程客户端以与本地文件系统类似的方式,来通过网络进行访问。虽然 NFS 不是第一个此类系统,但是它已经发展并演变成 UNIX系统中最强大最广泛使用的网络文件系统。NFS 允许在多个用户之间共享公共文件系统,并提供数据集中的优势,来最小化所需的存储空间。可以通过挂载的方式,把远端的文件系统不用烧录就能加载到本地,连接方式为以太网,前提就是必须要有网络。那么NFS的作用是什么,解决哪些问题,我们为什么要开发NFS,对开发者带来了哪些便利性?带着这些问原创 2021-06-24 08:34:18 · 692 阅读 · 0 评论 -
[Linux文件系统]文件系统的反解压操作镜像生产原始目录
文件系统是一个系统的顶层部分,与用户直接打交道,类似于我们的windows,比如打开目录下面的某个文件,这些都是呈现在文件系统中的操作。大家做linux应该对文件都不陌生,一切都是文件,操作的时候一定要对目录层级很清晰,至少分清楚绝对路径和相对路径,和其他人沟通的话也能在一个频道上面。特别需要注意的一点是,在做文件系统的时候一定要放到linux系统的目录下,不要放到共享目录中,因为软链接会丢失。如果你没有文件系统的原始目录,时间紧迫又不够时间做一个稳定的文件系统怎么办,或者你只想更改一个启动选型,把镜原创 2021-06-24 08:31:35 · 411 阅读 · 0 评论 -
[Linux字符驱动] DIDO 74HC595实现遥控遥信功能
项目中经常会使用YK和YX功能,DI操作,简单来说就是外部输入高电平,软件检测信号就为1;外部信号输入低电平,软件检测信号就为0;依据这样的设计,我们来看一下字符驱动该如何完成。下面介绍一种有IO控制和74HC595扩展控制DO的混合YK;为什么要加74HC595芯片?1、CPU的关键不够用2、锁存作用,595是一种移位的锁存器,就是CPU程序复位后,锁存外部的状态不发送变化;比如:外部接触器断开时序有要求;字符驱动的模型还是套用gpio系统;1、模块的入口函数module_init(at9原创 2021-06-10 08:06:40 · 731 阅读 · 0 评论 -
[linux字符驱动]Watchdog如何躲过linux的启动时间
Watchdog做过项目的同学应该不会陌生,主要是启动程序守护作用,程序跑飞后能够让MCU重新复位,让设备进入正常工作模式,通常所说的看门狗,普通的看门狗喂狗的周期是1.6S,只要在1.6S的时间内,让看门狗的喂狗电平进行反转一次,看门狗内部的计数器就会清0,如果超过1.6S周期没有反转喂狗信号,则会发出一个下降沿的电平给MCU的RST引脚,MCU从而复位。普通单片机的操作是这样的,如果换成了ARM系统,1.6S周期对于Linux来说,启动时间是不够的,先从bootstrap->uboot->原创 2021-06-04 12:32:14 · 419 阅读 · 0 评论 -
[Linux字符驱动] LED基于gpio系统点灯
首先聊一下linux中的软件工作岗位,有专门负责BSP的,负责把uboot、kernel、文件系统都搞定,这些都是比较复杂的;打包好了之后,基本万年不动,除非有问题暴露需要解决;内核驱动里面有基于总线架构和一些子系统实现,比如input子系统、pinctrl子系统、i2c、spi总线模型驱动;还有一些块驱动,比如,Nand、EMMC驱动;网络驱动,有网卡芯片、PHY芯片,和spi接口的网卡芯片驱动都算是网络驱动;最后介绍一下字符驱动,这是最常更改的一类驱动,也通常是自己实现的驱动。驱动的范围包含:LED、原创 2021-06-01 08:09:57 · 543 阅读 · 0 评论 -
[Linux 驱动]模块加载RTX8025驱动
系统版本:Ubuntu18.04-64编译器版本:gcc version 7.4.0 (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1)uboot版本:2018.07 -linux4sam_6.0板子型号:at91sama5d3x-xplainedMCU型号:sama5d36RTC型号:RX8025T[Datasheet] RX8025T时钟芯片解读Linux内核中驱动的方式有很多种实现方式,rtx8025是基于iic总线通讯,会使用内核的总线驱动框架,在次基础上原创 2021-05-24 18:25:49 · 849 阅读 · 0 评论 -
[linux kernel] 内核下RX8025对接系统时钟
系统版本:Ubuntu18.04-64编译器版本:gcc version 7.4.0 (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1)uboot版本:2018.07 -linux4sam_6.0板子型号:at91sama5d3x-xplainedMCU型号:sama5d36RTC型号:RX8025T[Datasheet] RX8025T时钟芯片解读RX8025T和RX8025SA有点区别,主要是时间寄存器的移位上面有差异;属于爱普生公司的设计,EPSON,这个原创 2021-05-13 07:59:36 · 1609 阅读 · 2 评论 -
[linux kernel]内核启动阶段控制IO口时序输出
系统版本:Ubuntu18.04-64编译器版本:gcc version 7.4.0 (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1)uboot版本:2018.07 -linux4sam_6.0板子型号:at91sama5d3x-xplainedMCU型号:sama5d36在一些特殊应用场景,在板子上电启动阶段就需要优先给IO进行上电,甚至是按照时序输出 ;比如:以前去广东电科院送检,有个检测项是4G模块在上电阶段,就要有RST信号出现1S低脉冲,然后ON/OFF信原创 2021-05-13 07:56:14 · 565 阅读 · 9 评论 -
[linux kernel] 内核下ksz8081驱动调试
系统版本:Ubuntu18.04-64编译器版本:gcc version 7.4.0 (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1)uboot版本:2018.07 -linux4sam_6.0板子型号:at91sama5d3x-xplainedMCU型号:sama5d36原理设计,电源是通过MCU控制的,RST也是通过MCU控制的;外部晶振50M;这样做的好处是,MCU复位之后,PHY芯片一定会被复位,防止PHY由于EMC问题死机,软件复位不了,可以通过电源让芯原创 2021-04-09 09:04:41 · 2526 阅读 · 0 评论 -
[linux kernel] 内核下ksz9031驱动调试踩过的坑
系统版本:Ubuntu18.04-64编译器版本:gcc version 7.4.0 (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1)uboot版本:2018.07 -linux4sam_6.0板子型号:at91sama5d3x-xplainedMCU型号:sama5d36内核中调试驱动,和uboot中会有些区别,因为内核启动过程是顺序启动的,硬件上电后,外部的器件要快速做好准备工作,内核代码初始化到这个器件如果器件没有完成上电复位,很可能会驱动失败,需要硬件和软件原创 2021-04-07 12:13:03 · 6001 阅读 · 10 评论 -
[linux kernel]内核图形化裁剪配置
系统版本:Ubuntu18.04-64编译器版本:gcc version 7.4.0 (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1)uboot版本:2018.07 -linux4sam_6.0板子型号:at91sama5d3x-xplainedMCU型号:sama5d36内核交叉工具链依赖于Makefile文件去级联编译,Kconfig文件做配置,比如现在的ESP32也是采用这种图形化配置,好用的东西接受度就会广。一、调出配置界面查看Makefile文件,查看原创 2021-03-11 12:52:33 · 1090 阅读 · 0 评论 -
[linux kernel]内核移植过程记录
系统版本:Ubuntu18.04-64编译器版本:gcc version 7.4.0 (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1)uboot版本:2018.07 -linux4sam_6.0板子型号:at91sama5d3x-xplainedMCU型号:sama5d36内核移植主要是裁剪一些不需要的功能,使用对应的交叉工具链把内核重新编译,设备树文件按照硬件去配置。一、配置文件路径arch/arm/configs/sama5_defconfig//配置文件原创 2021-03-11 12:46:57 · 987 阅读 · 0 评论 -
[linux 底层]u-boot EMMC驱动
山寨机的时代,很多年轻的朋友可能比较陌生,手机上会安装一个SD卡,做存储扩展;目前的智能手机会在PCB板上焊接一个EMMC芯片,做大容量数据存储,安全性好了很多,手机丢了也不用担心照片或者资料泄露的问题;1、EMMC特性-符合JEDEC/MMC标准版本5.0-高级12信号接口-x1、x4和x8I/O,可由主机选择-SDR/DDR模式,可达52MHz时钟速度-HS200/HS400模式-命令类:class 0 (basic); class 2 (blockread); class 4 (bloc原创 2021-03-11 12:44:34 · 1649 阅读 · 0 评论 -
[linux 底层]u-boot图形化裁剪配置
关注微信公众号,回复“uboot源码”,免费下载源码包make menuconfig启动参数,代码中加载过来的,在这里也可以修改;支持的网络命令Command line interface —>[*] Network commands --->4、设备树支持 Device Tree Control ---> 5、环境变量Environment ---> [ ] Environment in EEPROM原创 2021-03-11 12:40:55 · 373 阅读 · 0 评论 -
[Linux 底层]U-boot ksz8081网络驱动调试
micrel公司一款优秀的PHY芯片,关于芯片的介绍参考:[Datasheet PHY] ksz8081数据手册解读系统版本:Ubuntu18.04-64编译器版本:gcc version 7.4.0 (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1)uboot版本:2018.07 -linux4sam_6.0板子型号:at91sama5d3x-xplainedMCU型号:sama5d36与ksz9031很相似,公众部分可参考:1、如何找到uboot官网开发板默原创 2021-03-02 13:14:53 · 1723 阅读 · 0 评论 -
[Linux 底层]U-boot ksz9031网络驱动调试
ksz9031的介绍可以回归一下datasheet的介绍,一款很优秀的千兆以太网;【Datasheet】PHY KSZ9031千兆网络芯片解读系统版本:Ubuntu18.04-64编译器版本:gcc version 7.4.0 (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1)uboot版本:2018.07 -linux4sam_6.0板子型号:at91sama5d3x-xplainedMCU型号:sama5d36关注微信公众号,回复“ksz9031驱动”,免费下原创 2021-02-27 23:56:17 · 3115 阅读 · 1 评论 -
[Linux 底层]U-boot调试命令使用技巧
如果在uboot阶段调试驱动,可以充分利用uboot已有的资源,这样比较方便,也能加速开发的速度,站在巨人的肩膀上做事,才能事半功倍。1、uboot提供了操作命令覆盖了2、Nand Flash的操作,读写,擦除,以及状态打印;3、DDR的操作,内存字节打印;4、网络的操作,ping命令,ftp下载功能,命令码详见,《[Linux 底层]U-boot烧录脚本介绍SecureCRT》=> ping 192.168.2.1085、MAC控制器的操作,MII 可以读取MAC控制器的数据,和改变MA原创 2021-02-26 12:26:39 · 803 阅读 · 0 评论 -
[Linux 底层]U-boot编译移植
系统版本:Ubuntu18.04-64编译器版本:gcc version 7.4.0 (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1)uboot版本:2018.07 -linux4sam_6.0板子型号:at91sama5d3x-xplainedMCU型号:sama5d361、uboot目录如下:2、在configs/ 文件夹下面有官方的默认配置 # To put environment variables in nandflash (default):原创 2021-02-25 12:28:30 · 334 阅读 · 0 评论 -
[Linux 底层]bootstrap移植裁剪及编译
bootstrap文件夹内容如下图:在board/sama5d3_xplained目录下,有官方的默认配置文件sama5d3_xplainednf_linux_uimage_dt_defconfig 从nandflash启动直接跳转到uimage类型内核阶段sama5d3_xplainednf_linux_zimage_dt_defconfig 从nandflash启动直接跳转到zimage类型内核阶段sama5d3_xplainednf_uboot_defconfig 从nandflash启动直接原创 2021-02-24 08:45:38 · 317 阅读 · 0 评论 -
[Linux 底层]U-boot烧录脚本介绍SecureCRT
在uboot阶段,使用网口下载内核程序到开发板上面,需要输入下载命令,很容易出错,效率低下,可以使用脚本一键下载;工具SecureCRT工具栏上面“脚本”->“执行”,选择对应的文件,点击执行即可;下面我们来分析一下,脚本内容,以及如何具体实现的;设置uboot参数;#KaTeX parse error: Expected 'EOF', got '#' at position 23: …e = "VBScript"#̲interface = “1.0”crt.Screen.Synch原创 2021-02-24 08:42:51 · 753 阅读 · 0 评论 -
[Linux 底层]U-boot 启动参数配置
U-Boot启动方式可以选择从NandFlash中启动,也可以选择从网络端远程启动;通过NFS功能,通过设置启动参数,可以实现启动方式的切换;1、从Nand Flash中启动bootargs=console=ttyS0,115200 earlyprintk mtdparts=atmel_nand:256k(bootstrap)ro,768k(uboot)ro,256K(env_redundant),256k(env),512k(dtb),6M(kernel)ro,-(rootfs) rootfstype原创 2021-02-22 21:45:58 · 665 阅读 · 2 评论 -
[Linux 底层] 平台软件分层介绍
嵌入式ARM核心板的最小系统主要包含,MCU、DDR、NAND FLASH、复位电路构成,主频一般能达到400Mhz以上;软件发挥出色性能,一般会跑操作系统,比如Linux操作系统;不像单片机那样简单,单片机直接在片上运行应用程序即可;硬件主要以SAMA5D3 Xplained Board为例;MCU:SAMA5D36;ARM软件一般分为:bootstap、uboot、kernel、dtb(设备树)、rootfs(文件系统)、App(应用程序);BootStrap:这个功能主要是做MCU第一阶段的原创 2021-02-22 21:36:09 · 358 阅读 · 0 评论