自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

转载 嵌入式开发知识点总结

offsetof和container_of宏offsetof宏的作用:计算结构体中某个元素相对结构体首地址的偏移量container_of宏的作用:知道结构体变量中某个成员的指针,反推这个结构体变量的指针#include <stdio.h>#define offsetof(type,member) ((int) &((type *)0)->m...

2019-10-01 23:06:00 271

转载 嵌入式C语言面试必备

const关键词与指针const意味着只读。修饰指针的三种形式:  int const *p 等价于const int *p       --------指针的指向(p)可改,但是指针指向的内容(*p)不可改;  int *const p        ---------a刚好与上面相反:(*p)可改,(p)不可改...

2019-09-11 13:28:00 181

转载 注册字符设备接口

老接口:register_chrdev//注册设备驱动(实现注册设备号和相应的file_operation操作结构体)//缺点:只有自定义设置主设备号,无法指定次设备号新接口:register_chrdev_region(注册设备号)/alloc_chrdev_region(自动分配设备号) + cdevcdev结构体及相关函数(每一个驱动文件,都有一个它私有的cdev结构体,来建立...

2019-06-30 15:07:00 201

转载 虚拟地址映射机制--动态、静态

静态映射:内核移植时,以代码的形式硬编码,如果需要更改,必须改源码并重新编译内核在内核启动时建立静态映射表,到内核关闭时销毁。除非更改并重新编译,否则只要内核启动,静态映射表就一直存在且不发生变化静态映射表的建立过程(1)映射表描述。 linux/arch/arm/plat-s5p/cpu.c中的s5p_iodesc[]结构体数组(2)映射表建立函数。该函数负责根据(1)中的映射表...

2019-06-30 10:36:00 521

转载 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 86

转载 字符设备驱动(1)驱动代码完整源码:charButtons.c

内核版本:Linux3.0.8开发板:基于三星S5PV210处理器的Tiny210开发板驱动名称:charButtons.c驱动描述:按键触发中断,中断处理程序执行相应的简单LED点亮操作方案1注册字符设备使用新的接口实现(需要好几个函数来实现。貌似更复杂)方案2注册字符设备使用老的接口实现(貌似老接口更简单)/**********************...

2019-06-26 22:12:00 224

转载 字符设备驱动(1)代码分析---之register_chrdev

/*****************************************************************************简 述:简单字符型驱动程序,手动静态分配设备号,手动创建设备节点************************************************************************...

2019-06-26 21:55:00 292

转载 字符设备驱动(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 5384

转载 字符设备驱动(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 198

转载 字符设备驱动(1)代码分析---之gpio_to_irq

/**************************************************************gpio_to_irq(S5PV210_GPH2(0))**************************************************************/ 4 #define gpio_to_irq _...

2019-06-20 10:03:00 3296

转载 Linux内核移植初探

内核移植的梯度:初级:根据芯片公司的参考配置,编译开发板内核并了解执行过程中极:添加内核驱动的方式方法高级:修改或添加BSP包linux内核特性:可移植性强、支持的硬件平台广泛;超强的网络功能;多任务多用户系统;模块化的设计五大子系统:进程管理;内存管理;文件系统;网络协议;设备管理内核获取路径:芯片厂商、内核源码官方linux内核的目录结构层次结...

2019-05-11 22:17:00 296

转载 内核代码之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 117

转载 linux驱动动态与静态加载

在Linux中驱动的加载方式有动态加载和静态加载。动态加载,即驱动不添加到内核中,在内核启动完成后,仅在用到这一驱动时才会进行加载静态加载,驱动编译进内核中,随内核的启动而完成驱动的加载。添加字符驱动代码到内核的方式:1、在Linux-3.0.8/drivers/char/Kconfig中为charDev添加一个config条目,比如config TEST_CHAR2、修改Linux-3...

2019-04-13 16:40:00 571

转载 网络文件系统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 104

转载 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 298

转载 运用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 193

转载 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 106

转载 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 274

转载 PC环境搭建——虚拟机配置双网卡

Vmware虚拟机三种网络模式详解TCP/IP协议四层模型:应用层传输层网络层物理接口桥接模式时,主机和虚拟机在同一个网段,之间可以相互访问NAT模式时,主机和虚拟机不在同一网段,之间通过VMware Network Adapter VMnet8来实现主机和虚拟机的互访(主机网卡直接与虚拟NAT设备相连,然后虚拟...

2019-03-10 20:02:00 2096

转载 嵌入式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 253

转载 嵌入式linux系统移植(一)

内容: 交叉编译环境 bootloader功能子系统 内核核心子系统 文件系统子系统要点: 搭建交叉编译环境 bootloader的选择和移植 kernel的配置、编译、移植和调试 根文件系统的制作移植的基本步骤: 确定目标机、主机的连接方式 安装交叉编译环境 搭建主机-目标机的数据传输通道 编写三大子系统 烧写测试目标机和主机的连接方式...

2019-03-10 14:13:00 418

转载 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 156

转载 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 691

转载 嵌入式Linux系统移植——uboot常用命令

flash的一般分区:其它数据环境变量可执行程序。如bootloaderprint(可缩写为:pri):打印查看uboot这个软件中集成的环境变量setenv、saveenv:设置、保存环境变量如:设置环境变量:    setenv  abc 100删除环境变量:    setenv  abc保存环...

2018-12-18 20:55:00 212

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除