- 博客(16)
- 收藏
- 关注
原创 uboot.lds 链接文件分析
lds文件与scatter文件相似都是决定一个可执行程序的各个段的存储位置,以及入口地址,这也是链接定位的作用。U-boot的lds文件说明如下:SECTIONS{ ... secname start BLOCK(align)(NOLOAD):AT(ldadr) {contents}>region:phdr = fill ...}secname和contents是必须的,前者用来命名这个段,后者用来确定代码中的什么部分放在这个段,以下是这个描述中的一些关键字
2021-07-24 09:43:36
364
原创 C语言知识点总结
C语言面试题1、sizeof 与 stlen2、strcpy strcmp strcat1、sizeof 与 stlensizeof()功能:计算数据空间的字节数;strlen()计算字符数组的字符数,以"\0"为结束判断,不计算’\0’;char * s1 = "hello";char s2[] = "hello";char s3[100];char* s4=(char*)malloc(100);void *s5=(void*)malloc(100);char str1[5]={'h
2021-07-10 13:24:43
252
原创 1、SPI总线详解
概述SPI(Serial Peripheral interface)串行外围设备接口,是一种高速的,全双工,同步的通信总线。SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。硬件链接...
2021-03-30 11:07:51
6877
原创 samab 配置
1. 安装samba安装sambasudo apt-get install samba sudo apt-get install smbclient查看samba是否安装成功 可以使用ps命令查看samba服务器创建的进程:#ps |grep smb*。可以查看到samba新建的进程。配置win7访问linux1.创建共享目录: makedir /home/${USER...
2018-07-31 15:12:58
427
原创 工作队列——workqueue 与 tasklet
workqueue与tasklet功能相似,都是让某个函数在将来被调用。但是两者件也有一些区别:tasklet在软件中断上下文中运行,tasklet代码必须是原子的。工作队列在一个特殊的内核线程的上下文中运行,工作队列允许休眠;tasklet始终运行在被初始提交的同一处理器上,工作队列不是一定的;tasklet函数通常立即得到执行,但始终不会晚于下一个定时器滴答;工作队列函数延迟执行的时...
2018-07-30 15:50:42
1173
原创 延时执行与定时器
1. jiffies头文件 <linux/jiffies.h> 通常是 unsigned long 格式 64位,也可能是32位(在32位机器上),表示系统最近一次启动到当前的时间间隔。2. HZHZ表示每秒产生的时钟滴答数; HZ 是一个体系依赖的值,在<linux/param.h> 中定义或该文件包含的某个子平台相关文件中。 它与内核源码目录的”....
2018-07-27 21:08:16
828
原创 makefile语法总结
-obj1.obj-m 和 obj-y obj-m : 表示编译成模块 obj-y : 表示直接编译进内核2.一个或多个源文件 1). 一个源文件 例: #drivers/hello/Makefile obj-$(CONFIG_HELLO) += hello.o$(CONFIG_HELLO)一般在arch/arm/configs/xxx.h中定义 (CONFIGHEL...
2018-04-09 11:09:37
900
原创 字符串操作函数 strcpy strcat sprintf
strcpy原型声明:char strcpy(char dest, const char *src); 头文件:#include char* strcpy(char* des,const char* source){ char* r=des; assert((des != NULL) && (source != NULL)); while((*r++ = *s...
2018-02-24 14:41:27
900
原创 recovery 工作流程
一、recovery.cpp 文件分析recovery 可以理解为一个最小系统,上电开机后,uboot引导kernel,然后加载recovery镜像文件recovery.img(正常启动加载rootfs),之后执行镜像中的init 进程。在init.rc中有如下两行代码:service recovery /sbin/recovery seclabel u:r:recovery:...
2018-02-09 16:16:35
2062
原创 git 问题总结
注:origin 远程仓库名; <new_branch> 新分支; <local_branch> 本地分支; <remotes_branch> 远程分支1.新建本地分支,远程分支已经存在 git checkout -b <new_branch> origin/<branch> 基于远程分支branch创建新分区2....
2018-02-08 17:03:54
356
原创 platform驱动详解
platform总线是虚拟的平台总线,是linux设备驱动模型为了保持设备驱动的统一性而虚拟出来的总线。 总线将设备和驱动绑定,系统每注册一个设备的时候,会寻找与之匹配的驱动;相反,系统每注册一个驱动的时候,会寻找与之匹配的设备,而匹配由总线完成。 platform驱动工作流程: 1. 系统开机内核初始化阶段,初始化platform总线; 2. platform_device初始化调用
2018-01-04 11:21:55
2106
原创 shell脚本语法
shell脚本的开头一般是#!/bin/bash 或#!/bin/sh ,#!是一个特殊的表示符,其后,跟着解释此脚本的shell路径;这两者存在一定差别,例如:shell sh执行出现错误后会停止执行,而shell bash是一直执行到低。 如何运行脚本: 1.sh hello.sh ,bash hello.sh ,. hello.sh 2. ./hello.sh 注意:第一种方法
2017-12-18 15:15:44
377
原创 Android上层进入recovery流程
recovery介绍recovery是android的一种特殊模式,我称之为还原升级模式。这里从recovery的功能说起: 1.擦除用户数据 设置菜单中的恢复到出厂模式,即擦除用户数据 2.系统升级 设置菜单中的系统升级功能;OTA INSTALL,即使用update.zip包升级 recovery的详细功能在源码 bootable/recovery/recovery.c
2017-12-09 11:47:19
3051
原创 创建proc节点之create_proc_entry
proc虚拟文件系统也可以创建节点,实现用户空间与内核空间的交互。在驱动中创建节点,可以实现对硬件的控制。struct proc_dir_entry *create_proc_entry (const char *name, mode_t mode, struct proc_dir_entry *parent);参数:name:/proc/下节点的文件名,也
2017-12-05 11:13:34
6929
原创 创建sysfs节点之device_create_file、sysfs_create_group
sysfs属性节点可以实现用户空间与硬件交互,如设置管教电平,设置寄存器值等,控制驱动的具体功能。下面是如何在驱动中创建设备属性节点:一、device_create_filedevice_create_file用于在sys下创建设备的属性节点sysfs_create_group
2017-12-04 22:15:30
12726
3
原创 字符设备驱动
1.字符设备驱动框架先来一张网上盗来的图,整个框架一目了然 2.驱动初始化2.1分配cdev cdev结构体,其中的module和file_operations都是在在cdev_init中初始化struct cdev { struct kobject kobj; struct module *owner; /*通常为THIS_MODULE*/ ...
2017-12-01 15:36:59
393
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人