- 博客(24)
- 收藏
- 关注
转载 嵌入式开发知识点总结
offsetof和container_of宏offsetof宏的作用:计算结构体中某个元素相对结构体首地址的偏移量container_of宏的作用:知道结构体变量中某个成员的指针,反推这个结构体变量的指针#include <stdio.h>#define offsetof(type,member) ((int) &((type *)0)->m...
2019-10-01 23:06:00
308
转载 嵌入式C语言面试必备
const关键词与指针const意味着只读。修饰指针的三种形式: int const *p 等价于const int *p --------指针的指向(p)可改,但是指针指向的内容(*p)不可改; int *const p ---------a刚好与上面相反:(*p)可改,(p)不可改...
2019-09-11 13:28:00
206
转载 注册字符设备接口
老接口:register_chrdev//注册设备驱动(实现注册设备号和相应的file_operation操作结构体)//缺点:只有自定义设置主设备号,无法指定次设备号新接口:register_chrdev_region(注册设备号)/alloc_chrdev_region(自动分配设备号) + cdevcdev结构体及相关函数(每一个驱动文件,都有一个它私有的cdev结构体,来建立...
2019-06-30 15:07:00
224
转载 虚拟地址映射机制--动态、静态
静态映射:内核移植时,以代码的形式硬编码,如果需要更改,必须改源码并重新编译内核在内核启动时建立静态映射表,到内核关闭时销毁。除非更改并重新编译,否则只要内核启动,静态映射表就一直存在且不发生变化静态映射表的建立过程(1)映射表描述。 linux/arch/arm/plat-s5p/cpu.c中的s5p_iodesc[]结构体数组(2)映射表建立函数。该函数负责根据(1)中的映射表...
2019-06-30 10:36:00
572
转载 Linux操作命令
常用的模块操作命令:查看当前设备节点:ls /dev查看设备号占用情况:cat /proc/deviceslsmod: list of module(打印当前内核中已安装的模块列表)modinfo: 打印出一个内核模块的自带信息 (modinfo ***.ko)insmod/rmmod: install /remove module加载/拆卸模块(insmod/rm...
2019-06-26 22:34:00
103
转载 字符设备驱动(1)驱动代码完整源码:charButtons.c
内核版本:Linux3.0.8开发板:基于三星S5PV210处理器的Tiny210开发板驱动名称:charButtons.c驱动描述:按键触发中断,中断处理程序执行相应的简单LED点亮操作方案1注册字符设备使用新的接口实现(需要好几个函数来实现。貌似更复杂)方案2注册字符设备使用老的接口实现(貌似老接口更简单)/**********************...
2019-06-26 22:12:00
252
转载 字符设备驱动(1)代码分析---之register_chrdev
/*****************************************************************************简 述:简单字符型驱动程序,手动静态分配设备号,手动创建设备节点************************************************************************...
2019-06-26 21:55:00
315
转载 字符设备驱动(1)代码分析---之gpio_get_value
在中断处理函数中,调用gpio_get_value/gpio_set_value()函数来获取/设置gpio端口的值,在这里简单分析一下内核的实现流程。tmp = gpio_get_value(S5PV210_GPH2(0));#define gpio_get_value __gpio_get_valueint __gpio_get_value(unsigned g...
2019-06-26 21:44:00
5526
转载 字符设备驱动(1)代码分析---之request_irq
err = request_irq(irq, button_interrupt, IRQ_TYPE_EDGE_BOTH, buttons[i].name, (void *)&buttons[i]);static inline int __must_check request_irq(unsigned int irq, irq...
2019-06-21 12:49:00
229
转载 字符设备驱动(1)代码分析---之gpio_to_irq
/**************************************************************gpio_to_irq(S5PV210_GPH2(0))**************************************************************/ 4 #define gpio_to_irq _...
2019-06-20 10:03:00
3378
转载 Linux内核移植初探
内核移植的梯度:初级:根据芯片公司的参考配置,编译开发板内核并了解执行过程中极:添加内核驱动的方式方法高级:修改或添加BSP包linux内核特性:可移植性强、支持的硬件平台广泛;超强的网络功能;多任务多用户系统;模块化的设计五大子系统:进程管理;内存管理;文件系统;网络协议;设备管理内核获取路径:芯片厂商、内核源码官方linux内核的目录结构层次结...
2019-05-11 22:17:00
320
转载 内核代码之container_of
1 /***************************** 2 * container_of - cast a member of a structure out to the containing structure 功能:通过结构体成员找到成员所属结构体的首地址 3 * @ptr: the pointer to the member. 4 * @...
2019-05-07 21:16:00
130
转载 linux驱动动态与静态加载
在Linux中驱动的加载方式有动态加载和静态加载。动态加载,即驱动不添加到内核中,在内核启动完成后,仅在用到这一驱动时才会进行加载静态加载,驱动编译进内核中,随内核的启动而完成驱动的加载。添加字符驱动代码到内核的方式:1、在Linux-3.0.8/drivers/char/Kconfig中为charDev添加一个config条目,比如config TEST_CHAR2、修改Linux-3...
2019-04-13 16:40:00
599
转载 网络文件系统nfs在ubuntu16.04的安装
1、搜索nfs-sudo apt-cache search nfs-2、安装sudo apt-get install nfs-kernel-server3、配置:/etc/exports/home/binge/user/my_share/mini_busybox *(rw,sync,no_subtree_check)# * :anybody can link nfs...
2019-03-29 16:28:00
115
转载 ubuntu16.04 64位安装tftp服务器
1、安装tftpd-hpa和xinetd sudo apt-get install tftpd-hpa xined2、针对64位操作系统安装openbsd-inetd apt-get install openbsd-inetd3、创建/修改配置文件:/etc/xinetd.d/tftp /etc/default/tftpd-hpa 1 { 2 socke...
2019-03-29 13:03:00
323
转载 运用busybox构建最小根文件系统
平台:vmware下ubuntu14.04前期准备:安装交叉编译环境arm-linux-gcc-4.5.1;下载完成BusyBox 1.23.2一、busybox构建1、make menuconfig——>裁剪定制构建选项 make defconfig注:menuconfig需要库支持(sudo apt-get install libncurses5-dev)2、配置busybox...
2019-03-28 16:17:00
216
转载 u-boot.2012.10makefile分析,良心博友汇总
声明:以下内容大部分来自网站博客文章,仅作学习之用1、uboot系列之-----顶层Makefile分析(一)1、u-boot.bin生成过程分析2、make/makefile中的加号+,减号-和at号@的含义3、Makefile中wildcard的介绍4、makefile中"=" , ":=" , " : " 的区别 patsubst 以及addprefix5、Linux...
2019-03-14 15:14:00
128
转载 Linux内核启动参数
一、系统启动流程bootloader(uboot)——linux Kernel(uImage)——Rootfs(Init)——Application二、启动环境配置uboot环境变量:printenv setenv saveenv tftpboot nand read/write baudrate 115200 bootdelaybootcmd bootargs.....
2019-03-10 21:57:00
310
转载 PC环境搭建——虚拟机配置双网卡
Vmware虚拟机三种网络模式详解TCP/IP协议四层模型:应用层传输层网络层物理接口桥接模式时,主机和虚拟机在同一个网段,之间可以相互访问NAT模式时,主机和虚拟机不在同一网段,之间通过VMware Network Adapter VMnet8来实现主机和虚拟机的互访(主机网卡直接与虚拟NAT设备相连,然后虚拟...
2019-03-10 20:02:00
2139
转载 嵌入式Linux系统移植(二)——交叉编译工具集
常用工具:readelf、size、nm、strip、strings、objdump、objcopy、addr2linereadelf:读可执行文件的elf头 1 ELF Header: 2 Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 3 Class: ...
2019-03-10 15:13:00
276
转载 嵌入式linux系统移植(一)
内容: 交叉编译环境 bootloader功能子系统 内核核心子系统 文件系统子系统要点: 搭建交叉编译环境 bootloader的选择和移植 kernel的配置、编译、移植和调试 根文件系统的制作移植的基本步骤: 确定目标机、主机的连接方式 安装交叉编译环境 搭建主机-目标机的数据传输通道 编写三大子系统 烧写测试目标机和主机的连接方式...
2019-03-10 14:13:00
446
转载 C语言常用关键语法精华总结
1.关于typedef的用法总结2.typedef struct的用法3.typedef函数指针用法4.数组指针(数组类型的指针)与指针数组5.真正明白c语言二级指针6.C语言for循环(及自加,自减)完全攻略7.for循环中写i++与++i有啥区别吗转载于:https://www.cnblogs.com/embeded-linux/p/10359991.html...
2019-02-10 19:01:00
173
转载 ARM汇编常用指令
1.arm汇编 bic和orr指令2.MRS(读)和MSR(写)指令操作CPSR寄存器和SPSR寄存器使用3.协处理器CP15介绍—MCR/MRC指令4.ARM汇编之mvn指令5.指令条件码mi、pl以及移位操作6.汇编跳转指令B、BL、BX、BLX 和 BXJ7.汇编跳转指令BLO8.ARM指令和Thumb指令区别9.汇编 bne 1b和bne 1f浅析10.arm汇编指令之LDR ...
2019-02-01 07:10:00
723
转载 嵌入式Linux系统移植——uboot常用命令
flash的一般分区:其它数据环境变量可执行程序。如bootloaderprint(可缩写为:pri):打印查看uboot这个软件中集成的环境变量setenv、saveenv:设置、保存环境变量如:设置环境变量: setenv abc 100删除环境变量: setenv abc保存环...
2018-12-18 20:55:00
237
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人