从零开始嵌入式

Thinking will not overcome fear but action will.

13_【综合】完整的字符驱动和测试程序

一个完整的字符驱动和测试程序

准备内容 完成本章前,需要先完成以下内容: insmod时给模块中变量传值 申请字符类设备号 注册字符类设备以及生成设备节点 开始 解释一下,字符驱动和总线设备驱动不同,没有匹配概念。 字符驱动程序 和上一篇文件相比,下面程序主要完善了ops操作结构体中的内容。file_operations结构体在include/linux/fs.h文件中有定义。 cdevfu...

12_注册字符类设备以及生成设备节点

注册设备号后,通过静态/动态内存的方式注册字符设备,然后生成设备节点。

前面的部分介绍了申请设备号,本文紧接着介绍通过关联设备号注册字符设备。然后创建设备节点类,生成设备节点。 了解内容 抽丝剥茧,驱动的核心就是ops操作结构体,注册设备也就是将ops和设备结构体关联,然后将设备结构体和设备号关联起来,得以实现通过设备号找到对应ops操作结构体的目的。 单链表插入新节点 cdev_init后,字符设备每cdev_add一次就会在链表中插入一个新节...

11_申请字符类设备号

通过静态和动态的方式申请设备号

之前介绍了misc杂项设备的注册(主设备号固定,次设备号上次写的自动)并自动生成设备节点,本文介绍申请自定义的主、次设备号。 了解内容 值得注意的是:注册杂项设备函数misc_register包含了注册设备和自动生成设备节点。 而本文介绍的仅是注册设备。 注册设备函数 字符设备注册函数在路径“include/linux/fs.h”下有定义,分别是: register...

10_insmod时给模块中变量传值

实现加载模块时给模块中变量传递单个值、一组值

了解内容 加载内核模块时可以通过module_param宏来传递值给模块中变量。 原型是module_param(name, type, perm),可以在“include /linux/moduleparam.h”①中找到。 name:填写已声明的变量(type类型),会把传入参数的值赋给该变量; type:传入参数的数据类型,支持int、long、short、uint、u...

实现Web控制Led灯

基于boa服务器和led驱动实现同网段控制led灯

基于内容 进行之前需要完成下列内容: BOA服务器的搭建 LED驱动编写和相关系统编程 开始 准备的资源 资源 用途 地址 led_ctl.html 访问的网页文件,用GET方法提交信息到后端 浏览 cgi_led_c...

BOA服务器的移植

介绍在Ubuntu12.04和iTop4412上BOA服务器的移植

概述 BOA是一种非常小巧的web服务器,用来负责处理客户端或者是浏览器端的http请求,因为其特性小巧,性能优秀,故而适合应用于嵌入式系统。 用户通过网页客户端(浏览器)实现对服务端(嵌入式系统)的查询访问和下发数据命令。 A9开发板+CGI(提供接口的进程)+BOA构成服务端,浏览器或者应用程序够成客户端。 查看boa进程 boa在linux系统中一守护进程的方式存在,Li...

实现网络应用:ftp、tftp、nfs

基于最小linux实现网络数据传输和共享

准备工作 基于上一篇文章:搭建最小linux 确保同一网络环境 主要目标:开发板能ping通其他设备,其他设备亦可ping通开发板。 连接网线,更新开发板/etc/eth0-setting文件,配置为同一网段地址。 下图是我的配置,路由器ip是192.168.2.1,故我配置成了没被使用的192.168.2.200 重启开发板,使用if...

使用BusyBox搭建最小文件系统

搭建一个在iTop4412上运行的最小文件系统

准备工作 需要准备的工具 工具 描述 使用方法 Web busybox-1.29.3.tar.bz2 UNIX实用程序集合 开始 下载 install-devel-packages.sh 基本1:Ub...

Linux C语言常用库函数

介绍常用库函数的作用

和长度相关的库函数 strlen函数求字符串长度遇到结束符号’\0’截断,故strlen("ab\0cd")的结果为2; sizeof求占用空间,不是函数是一种方法; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 #include <stdio...

Linux 网络通信之UDP

介绍网络通信的使用

UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议。 介绍 使用ss -u查看 UDP连接,使用ss -ua查看所有的包括未连接状态的UDP连接。 使用ss -t查看 TCP连接,使用ss -ta查看所有的包括监听状态的TCP...