6-arm
文章平均质量分 83
arm
61u3
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
驱动开发_2.字符设备驱动
本文介绍了Linux字符设备驱动开发的基础知识。主要内容包括:字符设备的概念和特点(如按字节流操作),设备号的组成(主设备号区分设备类型,次设备号区分同类设备)及操作方法(MAJOR/MINOR/MKDEV宏)。详细说明了设备号的静态申请(register_chrdev_region)和动态分配(alloc_chrdev_region)方法,以及字符设备的注册流程(通过cdev结构体和cdev_init/add函数)。文章还阐述了应用程序与驱动程序的对应关系,重点分析了file_operations结构体作原创 2025-07-15 11:31:29 · 1097 阅读 · 0 评论 -
驱动开发_1.内核
用户触发: insmod 或 modprobe 命令发起请求。系统调用: 通过 init_module/finit_module 进入内核。安全检查: 权限、签名验证。内存分配: 为模块分配内核内存。ELF 解析: 拆解 .ko 文件结构。兼容性检查: 版本 (CRC)、许可证。符号解析与重定位: 链接模块到内核和其他模块(核心链接过程)。初始化执行: 调用 module_init 函数注册功能、申请资源。加入系统: 将模块加入内核链表,更新状态信息。原创 2025-07-15 10:09:00 · 1022 阅读 · 0 评论 -
标准I/O和系统I/O的区别
Linux环境下C语言I/O操作对比 标准C库I/O(如fopen/fread)与Linux系统调用I/O(如open/read)的主要区别: 缓冲机制:标准I/O提供用户空间缓冲(减少系统调用),系统调用直接操作内核无缓冲 接口对象:标准I/O使用FILE*指针,支持格式化操作;系统调用使用文件描述符(整数),仅支持字节流 性能差异:标准I/O适合频繁小数据操作,系统调用更适合大数据量或低延迟场景 功能扩展:系统调用提供更底层控制(如非阻塞I/O、mmap),标准I/O侧重易用性和跨平台性 线程安全:标准原创 2025-07-10 17:11:19 · 591 阅读 · 0 评论 -
arm系统移植
摘要 本文介绍了基于Exynos 4412开发板的Linux系统移植流程,主要包括: 开发环境搭建:配置交叉编译工具链、安装TFTP/NFS服务器 系统组件说明: uImage:内核镜像文件 .dtb:设备树文件(实现驱动与硬件信息分离) rootfs:根文件系统(必须挂载才能运行Linux) 关键步骤: 通过TFTP下载内核和设备树到开发板 通过NFS挂载根文件系统 配置u-boot环境变量实现自动启动 烧写方法:使用SD卡烧写u-boot镜像 该方案支持灵活定制u-boot和根文件系统,通过设备树机制实原创 2025-06-28 15:24:00 · 831 阅读 · 0 评论 -
静态库和共享库(动态库)的编译链接
本文介绍了静态库和动态库的创建与使用过程。静态库部分展示了通过gcc编译目标文件、ar命令打包静态库、以及链接静态库生成可执行程序的完整步骤。动态库部分详细说明了如何编译位置无关代码、创建共享库、链接主程序以及配置系统查找路径的两种方法(复制到系统目录或修改配置文件)。两种库的使用示例都包含了测试代码和完整的命令行操作流程,通过"Hello world"程序验证了库的正确性。文中特别强调了动态库使用时的路径配置问题,并提供了解决方案。原创 2025-06-13 17:41:24 · 245 阅读 · 0 评论
分享