自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (2)
  • 收藏
  • 关注

原创 RS232和RS485、TTL的区别

1 三者的通信协议相同,不同的是,代表0 跟 1的电平不同。2 应用场景跟属性不同。场景 232 接口是9脚的485 的传输长度更长一些参考百度 :详解串口、COM口、TTL、RS232、RS485区别...

2020-04-30 09:29:50 711

原创 设备树链接

https://blog.csdn.net/thisway_diy/article/details/84336346韦东山 设备树链接

2020-04-29 16:28:38 105

原创 linux 知识点

1 /proc/device 里面记录着各种设备的主设备号,以字符设备,块设备区分。

2020-04-28 00:15:03 110

原创 i2c 驱动

i2c 总线struct bus_type i2c_bus_type = { .name = "i2c", .match = i2c_device_match, .probe = i2c_device_probe, .remove = i2c_device_remove, .shutdown = i2c_device_shutdown, .pm = &i2c_dev...

2020-04-26 23:11:58 153 1

原创 SRAM、PSRAM、NORFLASH 原始接线思考

地址 0x6000 0000 ~ 0x63FFF FFFF 需要多少地址线?63FFF FFFF - 6000 0000换算成二进制 为 ‭0100000000000000000000000000‬ //注意到1 一共是 27位但是 数据线只需要 26根,因为 26根数据线就能表示 这个范围的数据!这个要连接多少位的存储器?8位,因为地址都是以字节为单位,递增的16位存储器,32位...

2020-04-26 10:17:44 839

原创 driver_attach()函数 分析

int driver_attach(struct device_driver * drv){ return bus_for_each_dev(drv->bus, NULL, drv, __driver_attach);}int bus_for_each_dev(struct bus_type * bus, struct device * start, void * d...

2020-04-25 20:31:55 1095

原创 驱动 device 相关函数

我们得出函数driver_add_attrs//加入driver目录下那么就有device_add_attrs()//添加到device目录中该函数存在于2 个 函数int device_add(struct device *dev)int bus_add_device(struct device * dev)上面函数又存在于 int device_add(struct devi...

2020-04-25 18:31:32 340

原创 驱动 driver 相关的函数

查看注册虚拟 platform 和 I2c 驱动共同点/** * platform_driver_register * @drv: platform driver structure */int platform_driver_register(struct platform_driver *drv){ drv->driver.bus = &platform_bus_t...

2020-04-25 18:22:22 674

原创 mmap学习

mm_struct 结构体描述了 text数据段(代码段)、初始数据段、BSS数据段、堆、栈和内存映射 等struct mm_struct { struct vm_area_struct * mmap; /* list of VMAs */ 用来描述内存映射 struct rb_root mm_rb; struct vm_area_struct * mmap_cache; /*......

2020-04-25 11:50:26 141

原创 copy_to_user 和 copy_from_user 使用场景和原理

static inline int copy_to_user(void __user *to, const void *from, int n){ return(CHOOSE_MODE_PROC(copy_to_user_tt, copy_to_user_skas, to, from, n));}从 上面可以推测把 to 是目标地址 from 是源地址 n 是大小...

2020-04-25 10:08:06 914

原创 const 修饰

C语言中的const用法https://www.cnblogs.com/xhds/p/11089607.html1规律 const 修饰 q 所以不能使用 q,可以使用 *qint *const q=&i; //q是const*q=26; //OKq++; //ERROR2规律 const 修饰 *p 所以不能使用 *p,可以使用 pConst int *...

2020-04-25 09:20:24 125

while 死循环的三种方式

while(1) { ; //加 一个分号 } while(1) { }while(1);这个比较常见static void SPIFlashWaitWhenBusy(void) //等待状态寄存器变为0{ while (SPIFlashReadStatusReg1() & 1);}...

2020-04-23 23:01:43 14942

原创 关于现场保护

今天看到一个篇,现场保护的文章Linux kernel 笔记 (53)——为什么“interrupt handler”不能被抢占?https://nanxiao.me/linux-kernel-%e7%ac%94%e8%ae%b0-%ef%bc%8853%ef%bc%89-%e4%b8%ba%e4%bb%80%e4%b9%88interrupt-handler%e4%b8%8d%e8%83%b...

2020-04-23 20:20:14 607

原创 如何把 16进制文件转成ASCII码

1 下载 winhex2 选中要变的,右键,编辑->复制选中块->C源码3 粘贴出来

2020-04-19 17:40:13 2271

原创 把一个存放数据的c文件,存放到某块 falsh地址上

SECTIONS { .text 0 : { *(.text) } .mydata 0x00000700 :{num.o(.data)}//把数据定位到这个falsh地址 .rodata : { *(.rodata) } .data 0x30000000 : AT(0x800) { data_load_addr = LOADADDR(...

2020-04-15 23:17:36 292

原创 单链表总结

正插链表#include <stdio.h> #include <stdlib.h>struct Stu *create(int n);void print(struct Stu *head);struct Stu{ int id; char name[50]; struct Stu *next;};int main(){ int n; struct...

2020-04-15 20:24:58 209

原创 应对Cortex-M 系列异常Hard Fault异常

工作调试m33架构,总是出现硬件错误然后根据 ARM Cortex-M3 和 ARM Cortex-M4 权威指南还有这篇博文找到了答案https://www.cnblogs.com/fozu/p/3613894.html在freertos 里面 任务优先级低的任务里面 执行 memcpy ,被优先级高的任务打断,会产生硬件中断CFSR_NS = 0x00000400 第 ...

2020-04-14 11:05:03 777

原创 makefile 知识点

1 C文件包含的头文件修改了,但C文件不重新编译解决方法【Linux + Makefile】Makefile的高阶用法:解决C文件包含的头文件修改了,但C文件不重新编译的问题https://blog.csdn.net/szullc/article/details/850388752 编译文件的原因是文件更新了!我们平时修改了文件,文件就更新了,就可以重新make了。...

2020-04-12 22:42:48 325

原创 NOR flash和NAND flash的比较

nor读NOR flash采用统一编址(有独立地址线),可随机读取每一个地址。写只能一页一页地写。擦除擦除既可整页擦除,也可整块擦除nand读页是读写数据的最小单元写1 只能将相应的位由1变02 擦除才能把块内所有位由0变13 写入数据时,如果该页已经存在数据,必须先擦除再写擦除块是擦除数据的最小单元参考 NOR flash和NAND flash的区别https:...

2020-04-11 23:30:12 176

原创 根文件系统 知识点

1/etc/inittab 文件中ttySAC0::askfirst:-bin/sh什么意思就是在串口0控制台下询问用户是否要执行(打开)bin/sh

2020-04-11 19:21:38 315

转载 arm 使能时钟知识点

1 时钟使能必须在外设初始化之前在这引用一个解释,“ARM的芯片,外设通常都是给了时钟后才能设置它的寄存器(即才能使用这个外设)。STM32、LPC1XXX等等都是这样,这么做的目的是为了省电,使用了所谓时钟门控的技术。寄存器是基于什么的?当然是触发器!!!准确地说应该是D触发器触发器的赋值是一定需要时钟的, 而寄存器的时钟是由总线时钟提供的,就是说没有总线时钟的话,你给寄存器值它...

2020-04-11 09:47:29 514

原创 m3 m4 总结

cortex- M3 和 M4 基于 ARMv7-M 架构

2020-04-08 23:32:05 181

原创 多文件工程,如何简洁快速的 调用其他文件的,变量,函数,库

一般一个文件调用另一个文件的 变量,函数 需要 extern添加库但是 可以把需要的 函数,变量直接封装成一个函数,然后 extern 会渐变很多1.c#include<stdio.h>int a=10;int b=6;int add(int a,int b){ return a+b;}int myprintf(void *p){ printf("a ...

2020-04-08 12:58:36 278

原创 根据连接文件得到相关信息

目的: 依赖链接文件得到某一个段的地址1首先分析一下 elf格式的文件readelf -S android_server 使用 readelf -S 看一下有哪些段, 显示的地址 是运行地址一般 flash 上的有效字节就是 text data rodataSECTIONS{ . = 0x30000000; __code_start = .; . = ALIG...

2020-04-02 21:52:11 194

原创 随手记

F_GETOWN, F_SETOWN, F_GETSIG 和 F_SETSIG 被用于IO可获取的信号。F_GETOWN:获取当前在文件描述词 fd上接收到SIGIO 或 SIGURG事件信号的进程或进程组标识 。F_SETOWN:设置将要在文件描述词fd上接收SIGIO 或 SIGURG事件信号的进程或进程组标识 。F_GETSIG:获取标识输入输出可进行的信号。F_SETSIG:设置标...

2020-04-02 17:52:25 573

destination.flv

FLV文件

2021-10-28

【野火】零死角玩转STM32—F429挑战者V2.pdf

【野火】零死角玩转STM32—F429挑战者V2.pdf

2019-11-27

空空如也

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

TA关注的人

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