03 2021 档案
摘要:前言 参考: 李柱明博客 本文主要记录 linux 环境变量配置的生命周期。 如,修改环境变量 PATH 是手动指定还是临时生效或是永久生效。 1. 修改环境变量 1.1 手动指定 如 ARCH 和 CROSS_COMPILE: 直接在 make 命令后添加即可,如: lzm@lzm-machine
阅读全文
摘要:前言 6. 总线-设备-驱动 总线-设备-驱动 又称为 设备驱动模型。 6.1 概念 总线(bus):负责管理挂载对应总线的设备以及驱动; 设备(device):挂载在某个总线的物理设备; 驱动(driver):与特定设备相关的软件,负责初始化该设备以及提供一些操作该设备的操作方式; 类(class
阅读全文
摘要:前言 5. 分离分层 本章节记录实现LED驱动的大概步骤,且编程框架实现分离分层。 分离分层: 上层:系统 相关。如模块注册于注销。 下层:硬件操作。如提供 file_operations 。分离: 设备。提供板卡信息,如使用哪一个引脚。 驱动。引脚的具体操作。 以下以 LED 为例。 5.1 回顾
阅读全文
摘要:前言 参考: 《IMX6ULLRM(6ULL用户手册).pdf》 李柱明博客:https://www.cnblogs.com/lizhuming/ 本文链接:https://www.cnblogs.com/lizhuming/p/14588172.html 4. LED芯片手册分析 本章节记录实现L
阅读全文
摘要:前言 链接: 李柱明博客:https://www.cnblogs.com/lizhuming/ 本文链接:https://www.cnblogs.com/lizhuming/p/14584917.html 移植AT32库&FreeRTOS教程 由于大部分国产MCU移植固件库、RTOS源码都是差不多的
阅读全文
摘要:前言 随着全球晶圆缺货,ST疯狂涨价,也是时候把目光放到国产 MCU 上啦,感觉还不错,看 datasheet 的的数据来分析,性价比高,性能强。至于稳定性嘛,我没有长时间老化和细节地测试过,不做评论。 建议: 如果不想重新构建新的 AT 工程,就在你ST产品的工程上修改即可,主要替换ST库(与AT
阅读全文
摘要:前言 以野火i.M 6U为例 3. 字符设备驱动 需要明确的是模块和驱动是两回事。 本笔记开始记录驱动的相关知识。 3.1 Linux设备分类 Linux设备可分为三:字符设备、块设备和网络设备。 网络设备:是一种特殊设备,它并不存在于/dev下面,主要用于网络数据的收发。 Linux系统将设备分别
阅读全文
摘要:前言 时间:20210315 主要记录这两天对国内各IC厂商的 MCU 了解记录。 大环境,ST 厂商 MCU 疯狂涨价,国内 MCU 也越来越完善,还便宜。同时,全球缺晶圆(这就看哪家厂商幸运,备货足了)。 简要工作记录 第一天: 今天早上接到主管的紧急任务,其实也就是评估国产 MCU 。找出代替
阅读全文
摘要:前言 以野火i.M 6U为例 2. 内核模块 本章节笔记主要理解内核模块代码框架和原理,分析一个简单的内核模块例子。 需要明确的是模块和驱动是两回事。 2.1 内核模块概念 2.1.1 内核 内核,是一个操作系统的核心。是基于硬件的第一层软件扩充,提供操作系统的最基本的功能, 是操作系统工作的基础,
阅读全文
摘要:前言 以野火i.M 6U为例 1. 开发环境搭建 驱动运行条件: 设备驱动是具有独立功能的程序,它可以被单独编译,但不能独立运行, 在运行时它被链接到内核作为内核的一部分在内核空间运行。 因此想要我们写的内核模块在某个版本的内核上运行, 那么就必须在该内核版本上编译它,如果我们编译的内核与我们运行的
阅读全文
摘要:前言 该 Makefile 已经通过基于内核 Linux5.4 版本验证通过。 因为编写这通用驱动 Makefile 时遇到了头文件指定路径失败的问题。使用过 ccflags-y 、INCDIR 、EXTRA_CFLAGS 、-L 等等参数都无效。就是因为我使用了 $(shell pwd)。导致这些
阅读全文