嵌入式
文章平均质量分 55
老谭_酸菜
这个作者很懒,什么都没留下…
展开
-
linux 下TCP通信例程
TCP server#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <linux/if.h>#include <sys/ioctl.h>#include <unistd.h>#include <signal.h>#include <st原创 2021-10-20 22:59:30 · 784 阅读 · 0 评论 -
嵌入式编程通用Makefile
一、根目录下Makefile这个Makefile为主MakefileCROSS_COMPILE = AS = $(CROSS_COMPILE)asLD = $(CROSS_COMPILE)ldCC = $(CROSS_COMPILE)gccCPP = $(CC) -EAR = $(CROSS_COMPILE)arNM = $(CROSS_COMPILE)nmSTRIP = $(CROSS_COMPILE)stripOBJCOPY = $(CROSS_COMPILE)o原创 2021-10-18 16:11:16 · 327 阅读 · 0 评论 -
Linux中的workqueue机制
转载与知乎https://zhuanlan.zhihu.com/p/91106844一、前言Linux中的workqueue机制是中断底半部的一种实现,同时也是一种通用的任务异步处理的手段。进入workqueue队列处理的任务(work item)在代码中由"work_struct "结构体表示(定义在include/linux/workqueue.h):struct work_struct { struct list_head entry; work_func_t func; atomic_转载 2021-10-15 11:57:02 · 658 阅读 · 0 评论 -
Linux中断处理的“下半部”机制
前言中断分为硬件中断,软件中断。中断的处理原则主要有两个:一个是不能嵌套,另外一个是越快越好。在Linux中,分为中断处理采用“上半部”和“下半部”处理机制。一、中断处理“下半部”机制中断服务程序一般都是在中断请求关闭的条件下执行的,以避免嵌套而使中断控制复杂化。但是,中断是一个随机事件,它随时会到来,如果关中断的时间太长,CPU就不能及时响应其他的中断请求,从而造成中断的丢失。因此,Linux内核的目标就是尽可能快的处理完中断请求,尽其所能把更多的处理向后推迟。例如,假设一个数据块已经达到了网线,原创 2021-10-05 21:53:31 · 1391 阅读 · 0 评论 -
总线设备驱动模型
一、总线设备驱动模型总线设备驱动模型采用分层分离的方式来进行,采用bus/dev/drv的模型,把设备从驱动中剥离出来。二、platform总线模型详解首先查看bus_type实例platform_bus_type.struct bus_type platform_bus_type = { .name = "platform", .dev_groups = platform_dev_groups, .match = platform_match, //bind platform devi原创 2021-10-02 11:25:42 · 2006 阅读 · 0 评论 -
【嵌入式】内核中的container_of宏
/**container_of - 通过结构体的一个成员获取容器结构体的指针@ptr: 指向成员的指针。@type: 成员所嵌入的容器结构体类型。@member: 结构体中的成员名。*/#define container_of(ptr, type, member) ({ const typeof( ((type *)0)->member ) *__mptr = (ptr); (type *)( (char *)__mptr - offsetof(type,member) );})原创 2021-09-26 01:05:32 · 94 阅读 · 0 评论 -
LED驱动程序框架,兼容多个单板
一、整体框架以面向对象的方式,把驱动拆分为通用的框架(leddrv.c)、具体的硬件操作(board_X.c):抽象出一个结构体struct led_operations{ int num; /*灯的数量*/ int (*init) (void); /*初始化LED,which-哪一个LED*/ int (*open) (int which); int (*ctl) (int which, char status);/*控制对应的LED的亮灭*/ void (*exit)原创 2021-09-25 11:26:43 · 349 阅读 · 0 评论 -
基于STM32MP1的简单LED驱动程序
注意参考内核例程一、驱动#include <linux/kernel.h>#include <linux/module.h>#include <linux/slab.h>#include <linux/init.h>#include <linux/fs.h>#include <linux/delay.h>#include <linux/poll.h>#include <linux/mutex.h>原创 2021-09-24 21:29:41 · 446 阅读 · 0 评论 -
hello驱动程序
一、hello驱动程序编程过程当中,注意参考内核的历程。#include <linux/module.h>#include <linux/fs.h>#include <linux/errno.h>#include <linux/miscdevice.h>#include <linux/kernel.h>#include <linux/major.h>#include <linux/mutex.h>#in原创 2021-09-24 01:52:36 · 164 阅读 · 0 评论 -
嵌入式板卡支持中文显示的方法,修改busybox
目录一、问题描述二、解决方法2.1 修改busybox源码2.2 修改busybox配置项glibc.config三、测试本文以Hi3798板卡为例。一、问题描述如上图所示,????1.jpg(中国1.jpg)显示出现问题。通过查找,是由于高版本中busybox中的ls等指令显示中文(UTF-8编码)出现问题。无法显示一般都是因为编码问题,板卡系统编码以及电脑终端的编码。二、解决方法2.1 修改busybox源码进入SDK/third_party/o.原创 2020-12-25 15:18:45 · 770 阅读 · 0 评论