- 博客(230)
- 资源 (41)
- 论坛 (3)
- 收藏
- 关注

原创 stm32 利用SIM800C模块定位再通过该模块http协议发送给服务器
1、http基本命令AT+SAPBR=3,1,"APN","UNINET" //CMNET移动 CNNET电信 UNINET联通 AT+SAPBR=1,1 //激活网络 一定要等到ok返回,否则出错 AT+HTTPINIT //初始化http网络 AT+HTTPPARA="CID",1 //设置回话参数 //设置域名给让模块解析 AT+HTTPPARA="URL","www.xiongyuchun.xyz:9999/Api/addDreamValueAPI.aspx?i...
2020-05-24 12:10:51
1732

原创 linux驱动之I2C总线驱动框架分析
Table of Contents1、I2C模型框图2、设备信息层2.1、非设备树形式2.2、设备树形式3、芯片控制器层adapter3.1、控制器初始化3.2、控制器底层传输函数(起始,数据,应答,停止)4、核心层core.c i2c_bus4.1、i2c_bus总线初始化4.2、client(设备)和i2c_driver(设备驱动)匹配过程4....
2020-05-06 13:46:06
792
1

原创 linux内核移植步骤
1.解压内核源码 tar -jxvf linux-xxx.tar.bz2 或者 tar -zxvf linux-xxxx.tar.gz2.清除之前的配置clean - 清大部分生成的文件, 但是保留配置文件, 以及可以保证足够编译模块的信息。mrproper - 清所有的生成文件, 以及配置文件, 以及各种备份文件distclean - mrproper 效果 + ...
2020-04-23 23:14:35
1484

原创 嵌入式字符设备驱动编写步骤
目录编写步骤:设备号的申请注册注销:通用函数(静态动态申请都可以):静态申请:动态申请:设备号的注销:设备节点的创建与销毁:手动创建设备节点:自动创建设备节点:设备节点的销毁:IO资源的映射与配置:读写函数编写,操作IO口,比如点灯:应用实验程序的编写驱动示例代码:编写步骤:/*编写步骤:**1、编写驱动模块的基本框架h...
2019-03-09 20:42:58
1034

原创 linux驱动基本命令
加载驱动:insmod driver.ko卸载驱动:rmmod driver注意:卸载没有.ko列出加载了哪些驱动: lsmod
2019-03-09 16:03:01
2360
原创 pytorch 安装
1、安装教程https://www.cnblogs.com/zhouzhiyao/p/11784055.html2、安装速度慢教程https://www.cnblogs.com/GoubuLi/p/13533519.html
2020-11-29 11:56:04
110
原创 tensorflow 安装失败
1、目前anaconda 一般是python3.8 或者 python.7 或者python2.7 的环境,然而tensorflow 的环境是python3.6.xx 环境,因此需要给tensorflow创建python环境执行如下命令:conda create --name tensorflow python=3.6 //注意3.6后面尽量不加别的后缀注意:查看自己当前环境的python版本,一般是conda自带的,如果自己还安装了其他版本,避免干扰尽量卸载掉,上面的命令并不是去使用..
2020-11-28 22:59:08
107
1
原创 数字图像处理-直方图均衡化
一、直方图均衡化目的直方图过于集中,偏向左边太暗,偏向右边太亮,偏向中间太模糊;因此如要想让图像对比度更高,更容易看清楚一些细节,则需要直方图均衡化处理二、直方图均衡化重要公式其中 S 为 r 的映射灰度值,为概率密度函数经过推导:推导过程见数字图像处理冈萨雷斯书籍公式通俗解释:把数量少的挨在一起的灰度级叠加起来,像素数量多的灰度级不需要叠加自成一柱;这样就可以把少的变成多的,多的不变。这就实现了均衡化...
2020-11-17 14:43:02
50
转载 linux 内核地址空间
一、内核镜像在3GB~(3GB+896MB)这段直接/线性映射区域,包含了内核初始化页表swapper_pg_dir,内核镜像等。内核也是由一个elf文件(比如vmlinux)加载启动的,加载后也有text段,data段,bss段等。二、内存分配kmalloc和vmalloc在虚拟内存空间的normal memory区域,内核使用kmalloc()来分配内存,kmalloc()返回的也是虚拟地址,但是分到的内存在物理地址上是连续的(因为是直接映射,在虚拟地址上自然也是连续的...
2020-11-02 13:41:46
87
转载 linux进程空间地址划分
一、数据段存放程序中已初始化且初值不为0的全局变量和静态局部变量。数据段属于静态内存分配(静态存储区),可读可写。二、BSS段包括:未初始化的全局变量和静态局部变量 初始值为0的全局变量和静态局部变量(依赖于编译器实现) 未定义且初值不为0的符号(该初值即common block的大小)三、堆堆用于存放进程运行时动态分配的内存段,可动态扩张或缩减。 堆中内容是匿名的,不能按名字直接访问,只能通过指针间接访问。当进程调用malloc(C)/new(C++)等函数分配内...
2020-11-02 11:31:04
79
转载 linux shell脚本基础知识
参考:linux shell脚本基础知识Table of Contents1、用户自定义变量1.1变量赋值:1.2, 将一个命令的执行结果赋给变量1.3变量叠加1.4、列出所有的变量:1.5、删除变量:2、环境变量3、位置参数变量3.1、shift指令:3.2、shell中$* 和$@的区别4、预定义变量5、read命令6、运算符7、$()与${}的区别8、条件测试8.1、内置test命令8.2、字符串测试:8.3、整数测试:8
2020-06-16 15:43:22
73
转载 Linux seq命令详解
参考 Linux seq命令详解seq: squeue 是一个序列的缩写,主要用来输出序列化的东西seq常见命令参数 1 2 3 4 5 6 7 8 9 10 用法:seq[选项]... 尾数 或:seq[选项]... 首数 尾数 或:seq[选项]... 首数 增量 尾数 以指定增量从首数开始打印数字到尾数。 -f, --format=...
2020-06-16 11:37:57
100
转载 linux之expr命令
参考:linux之expr命令expr命令可以实现数值运算、数值或字符串比较、字符串匹配、字符串提取、字符串长度计算等功能。它还具有几个特殊功能,判断变量或参数是否为整数、是否为空、是否为0等。1、算术运算用法示例算术乘法符号"*"因为是shell的元字符,所以要转义,可以使用引号包围,或者使用反斜线。[root@xuexi ~]# expr $a * $bexpr: syntax error[root@xuexi ~]# expr $a '*' $b12[root@xu.
2020-06-16 11:32:54
106
原创 c语言字符串长度,占用字节大小,存放位置等问题
参考文章:https://www.cnblogs.com/xmhsincere/p/4915354.html 1、三者长度strlen问题int main () { char *str="xiaolong"; printf("%d\n",strlen(str)); return 0; }结果:#include <stdio.h>#include <string.h> int main ...
2020-05-24 21:13:25
1177
转载 I2C、SPI设备树驱动对设备子节点的处理
对于i2c, spi等总线节点会转换为platform_device,然后它们下面的子节点交给父节点的platform_driver里面probe函数处理1、I2C总线节点的处理过程:/i2c节点一般表示i2c控制器, 它会被转换为platform_device, 在内核中有对应的platform_driver; platform_driver的probe函数中会调用i2c_add...
2020-05-05 21:46:05
519
转载 设备树节点转换为设备节点device_node、和平台设备资源platform_device
1、_dtb转换为device_node在dts文件里,每个大括号{ }代表一个节点,比如根节点里有个大括号,对应一个device_node结构体;memory也有一个大括号,也对应一个device_node结构体。节点里面有各种属性,也可能里面还有子节点,所以它们还有一些父子关系。根节点下的memory、chosen、led等节点是并列关系,兄弟关系。对于父子关系、兄弟关系,在d...
2020-05-05 20:07:54
590
原创 linux 驱动之PWM蜂鸣器驱动
1、常用pwm函数//申请一个PWM设备 pwm_device *pwm_get(struct device *dev, const char *con_id);//配置PWM周期和占空比 int pwm_config(struct pwm_device *pwm, int duty_ns, int period_ns);//使能pwm int pwm_enab...
2020-05-04 09:38:59
241
原创 linux中断处理原理机制
本笔记摘自《深入linux设备驱动程序内核机制》1、硬件中断框架其中PIC为中断控制器,现在的ARM SOC处理器已经集成了PICirq是发生中断后,从中断寄存器中读出的中断号码,用于识别是发生了哪个中断INT代表触发CUP的统一外部中断中断信号,进过一些汇编代码处理后,调用统一的外部中断处理函数asm_do_IRQ2、中断软件处理流程...
2020-04-29 20:00:18
64
原创 linux驱动调试copy_from_user错误
注意应用层读写的时候传递buf是否是指针,本次由于应用层调用write函数传递得是buf的值,而不是传递指针,虽然编译能通过,但是调用copy_from_user 失败...
2020-04-26 21:56:43
307
原创 linux加载和卸载驱动模块出现 'XXX': device or resource busy 错误提示
原因1led驱动程序中没有用宏module_exit()实现模块被移除的功能原因2:内核编译时没有勾选MODULE_UNLOAD模块卸载支持功能原因3:这种情况一般都是驱动的设备号已经被系统使用了原因4:lsmod 显示是[permanent](意思是永久的),编译内核的编译器和编译驱动的编译器版本不一致导致不兼容问题总结:原因4是最难发现的,也是tiny...
2020-04-25 11:14:14
440
1
原创 嵌入式c语言进阶,提升,加强,深入书籍推荐
网上关于c语言的推荐书籍一大堆,但是我觉得一下两本更适合嵌入式c语言学习,尤其是嵌入式Linux与物联网软件开发 C语言内核深度解析,两本书籍有很多一样的地方,对c语言剖析比较深入,朱有鹏,张先凤写的那本更详细完善,希望对对刚入门嵌入式小白有帮助1、c语言深度解剖作者:陈正冲出版社:北京航空航天大学出版社出版年:2010-7页数:165定价:29.00元...
2020-03-25 08:41:33
391
原创 uboot引导linux内核过程 卡死Starting kernel ...(下载地址,加载地址,入口地址的修改)(uImage和zImage的区别)
red\color{#FF3030}{red}red 小龙
2020-03-16 11:06:57
209
转载 Makefile中常用函数使用
Table of Contents一、函数调用的语法二、文件名操作函数 1、 $(dir )取目录函数 2、$(notdir )取文件函数 3、$(suffix )取后缀函数 4、 $(basename )取前缀函数 5、 $(addsuffix ,)加后缀函数 6、$(addprefix ,)加前缀函数 ...
2020-03-14 17:15:32
109
转载 arm 编译相关命令arm-linux- (gcc/ld/objcopy/objdump)详解
在linux中输入vi Makefile 来实现创建Makefile文件注意:命令行前必须加TAB键例如:将两个文件led.c和crt0.S汇编文件,制作一个Makefile文件led.bin : crt0.S led.c arm-linux-gcc -c -o crt0.o crt0.c arm-linux-gcc -c -o led.o led.c arm...
2020-03-14 16:54:25
273
转载 Linux-printk分析、使用__FILE__, __FUNCTION__, __LINE__ 调试
1.在驱动调试中,使用printk(),是最简单,最方便的办法当uboot的命令行里的“console=tty1”时,表示printk()输出在开发板的LCD屏上当uboot的命令行里的“console=ttySA0,115200”时,表示printk()输出在串口UART0上,波特率=115200当uboot的命令行里的“console=tty1 console=ttySA0,...
2020-03-14 15:24:04
162
转载 linux怎么查看已装好硬件驱动
linux系统中的设备驱动是否安装好一般检查几个方面:1、系统日志。嵌入式系统多是直接dmesg一下,看有没有设备关键字相关的出错信息(通用系统可检查/var/log/messages文件)。2、已加载的模块。检查模块加载列表中有没有相关设备的模块。lsmod3、设备列表。检查已加载的设备中有没有相关设备cat /proc/devices4、设备入口。如果以上检查都正常,还需要检查设备目...
2020-03-13 17:18:34
489
转载 linux 文件打开(open)原理,非父子进程,父子进程打开文件关系
1、文件描述符fd和文件描述符表概述在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件、目录文件、链接文件和设备文件。文件描述符(file descriptor)是内核为了高效管理已被打开的文件所创建的索引(fd),其是一个非负整数(通常是小整数),文件描述符fd和文件file指针是文件描述符表的重要内容,用于指代被打开的文件,所有执行I/O操作的系统调用都通过文件描述符。程序刚刚...
2020-03-04 19:10:18
324
转载 位置有关码和位置无关码详细解释
1、总体介绍代码的运行分为三个阶段:取指,译码,执行,而取指令肯定要知道代码地址,执行过程又包含对变量的读写,对变量的读写也得知道变量的地址吧,至于代码的地址和变量的地址怎么确定呢?答:由编译器确定,编译器确定地址分为两种形式,1、根据当前PC+偏移地址确定地址。2、直接用链接地址对于第一种方式,地址是动态的,会根据PC的值变化而变化,对于第二种方式就是固定为我们指定的链接地址...
2020-03-01 22:56:05
416
2
原创 uboot 代码重定位(位置有关码)(存储地址,运行地址,链接地址)
Table of Contents1、代码启动过程简要分析2、存储地址,运行地址,链接地址2.1、存储地址2.2、链接地址2.3、运行地址2.4、链接地址和运行地址的区别3、位置有关码,位置无关码详细解释4、代码重定位参考文章:https://blog.csdn.net/lizuobin2/article/details/52049892#1、代...
2020-03-01 18:31:44
3131
原创 linux (platform driver)平台设备驱动匹配方法
Table of Contents一、匹配函数platform_match1.1、设备树匹配方法1.2、id_table匹配方法1.3、dev-name和platform_driver->drv->name匹配方法一、匹配函数platform_match平台设备驱动分为设备层和驱动层,每当有新的设备或者新的设备驱动注册时都要首先调用匹配函数进行匹配...
2020-02-23 16:01:48
425
原创 linux (platform_driver)平台设备驱动常用API函数
Table of Contents1、设备层注册、注销函数1.1、platform_device_register1.2、platform_device_unregister1.3、platform_add_devices2、驱动层注册注销函数2.1、platform_driver_register2.2、platform_driver_ unregister3、...
2020-02-22 18:43:05
701
原创 LCD数据手册解析
Table of Contents一、基本信息(分辨率尺寸)二、时序解析2.1、水平horizontal2.2、垂直vertical2.3、时钟相位极性(上升沿,或者下降沿有效)一、基本信息(分辨率尺寸)二、时序解析linux LCD驱动开发之原理时序分析(二)2.1、水平horizontalHS Blanking = HSPW + HBP...
2020-02-21 18:09:05
1593
原创 linux LCD 驱动编写(四)
一、应用程序访问驱动原理LCD驱动程序假设app: open("/dev/fb0", ...) 主设备号: 29, 次设备号: 0--------------------------------------------------------------kernel: fb_open int fbidx = iminor(inode...
2020-02-21 16:28:37
186
原创 Linux LCD重要数据结构解析
一、struct fb_infoFb.h linux-3.5\include\Linux用法://驱动程序必须用这个结构体定义的成员,并且从平台设备数据中取出信息对该结构体进行填充struct fb_info {atomic_t count;int node;int flags;struct mutex lock; /* Lock for open/releas...
2020-02-21 14:27:08
93
stm32f107ptp移植程序
2018-01-24
stm32f107ptp时钟同步
2018-01-30
正点原子stm32f407探索者LD3320语音识别程序
2020-06-03
stm32 sim800c定位http协议发送定位信息给服务器.7z
2020-05-24
国嵌唐老师c++课件(完整版)
2018-05-23
51单片机多任务编程思想
2018-01-31
人工智能白皮书2018版本
2018-01-30
c++计算器课程设计
2018-01-26
51单片机课程设计音乐播放器
2018-01-03
stm32mp3模块
2017-12-29
嵌入式c语言状态机实例
2017-12-24
请求删除下载资料
发表于 2018-02-12 最后回复 2018-02-12
求推荐STM32提高书籍
发表于 2017-11-09 最后回复 2018-01-24
stm32以太网通信
发表于 2018-01-15 最后回复 2018-01-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝