自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

p=f/s

Hard work beats talent when talent fails to work hard.

  • 博客(179)
  • 资源 (29)
  • 收藏
  • 关注

原创 FreeRtos 时间管理(二)

本篇主要介绍FreeRtos的绝对延时函数vTaskDelayUntil。

2024-03-30 13:22:18 180

原创 FreeRtos时间管理(一)

FreeRtos的时间管理包括相对延时vTaskDelay、绝对延时vTaskDelayUntil、系统时钟Systick本篇主要分析相对延时vTaskDelay函数,需要分析下PendSv中断触发的位置。

2024-03-23 13:22:19 297

原创 FreeRtos Queue(五)

xQueueGenericSendFromISR 和 xQueueReceiveFromISR都是在中断里调用的而不是任务里调用的,所以队列满了或者是队列为空的时候自然就没有把当前任务放到xTasksWaitingToSend或者xTasksWaitingToReceive链表里这一说,因此,在中断里的处理就会简单很多。pxHigherPriorityTaskWoken 这个变量是个输出类型参数,函数执行完的时候通过这个变量的值来判断是否需要任务切换。

2024-03-09 13:01:10 247

原创 FreeRtos Queue (一)

本篇主要讲队列的数据结构和初始化。

2024-01-13 13:12:39 395

原创 FreeRtos 内存管理(二)

本篇讲heap_3.c、heap_4.c、heap_5.c。

2024-01-09 10:45:18 381

原创 FreeRtos内存管理(一)

FreeRtos里面有5个heap.c,本篇先只讲heap1.c和heap2.c。

2023-12-23 13:58:08 391

原创 写一个简单的cat命令

1、本篇实现cat命令的两个基本功能 cat FilePath1 FilePath2 ... : 将该文件的内容输出到终端上 cat : 将键盘输入的内容输出到终端上2、思路分析: 以上两个功能实际上是完成了两个文件的重定向, cat FilePath1 FilePath2 ... :将FilePath1 FilePath2 ... 文件中的内容重定向到了标准输出中,也就是文件拷贝的功能,即将FilePath1 FilePath2 ......

2021-02-26 10:33:00 1725 2

原创 Mesh networking----Mesh 网络管理(Mesh network management)

写在前面: 本文参考Mesh Core Spec 翻译而来,翻译能力有限肯定有理解不到位之处,还请大家指出。欢迎广大蓝牙、mesh爱好者一起交流,本人QQ:993650814。正文: 1、Mesh Network Creation procedure (mesh网络创建过程) 为了创建一个mesh网络,需要一个启动配置者(Provisioner)。Provisioner 会...

2019-04-12 08:41:49 1932

原创 蓝牙5.1之Direction Finding

    写在前面:2019年1月28日,SIG发布了蓝牙核心规范V5.1,怀着无比激动的心情翻译阅读了ble 5.1的先进特性,位置服务和测向功能,以及他这两大功能的实现原理,本篇主要介绍Direction Finding 测向,本人翻译能力有限,如有理解不到位的地方还请及时指出,QQ:993650814.    ble core V5.1 下载地址:            Core_V5...

2019-02-02 17:02:42 3551

原创 Nordic mesh 协议启动配置流程分析(一)

写在前面:本篇主要分析启动配置流程,需要准备两份代码,provisioner 角色和provisionee角色。QQ:993650814,欢迎一起讨论ble或者mesh。参考资料如下:解密蓝牙mesh系列 | 第九篇解密蓝牙mesh系列 | 第十篇SDK路径下载:http://developer.nordicsemi.com/nRF5_SDK/nRF5_SDK_v15.x.x/...

2019-01-09 19:47:37 4778

原创 蓝牙mesh协议架构

写在前面:马上要开始搞mesh组网了,本篇参考mesh的架构文档又加上自己的理解简单整理了一些,为后续做个准备吧。 正文:蓝牙mesh架构整理:   即在ble协议栈基础之上,又添加了7层协议。模型层:涉及模型的实施,因此涉及一个或多个模型规格中定义的行为、消息、状态、状态绑定等的实现。那么什么是模型:模型能够定义并实施节点的功能和行为,而状态能够定...

2018-12-24 19:32:58 5019

原创 Linux 网络编程 全解(十一)--------HTTP协议以及用socket实现访问HTTP服务器

写在前面:本文注意解释http协议的格式,主要包括以下内容:HTTP概述、HTTP特点、URL、HTTP报文格式以及用sockt实现访问http服务器。正文:一、HTTP协议概述1、HTTP协议是Hyper Text Transfer Protocol (超文本传输协议)的缩写,HTTP基于TCP/IP协议来传输数据,HTTP工作于CS架构之上,即浏览器作为HTTP客户端,通过URL向...

2018-12-01 12:42:08 1216 1

原创 Linux 网络编程 全解(九)--------UDP和组播、广播的实现

写在前面:本文分两部分,先说UDP的实现,再讲下组播的实现。再后面补充一下UDP广播的实现。正文:一、1、TCP和UDP通信优缺点   TCP:面向连接的,可靠数据包传输。对于不稳定的网络层,采取完全弥补的通信方式,丢包重传机制。     优点:稳定,数据流量稳定,速度稳定,顺序稳定。     缺点:传输速度慢,传输效率低,资源开销大。     使用场景:数据的完...

2018-11-24 16:28:12 629 4

原创 802.11协议帧之数据帧格式解析

写在前面:802.11是国际电工电子工程学会(IEEE)为无线局域网络制定的标准。所有802.11的帧分为三类:管理帧、控制帧、数据帧,本篇主要对数据帧协议讲解。欢迎讨论,QQ:993650814 正文:一、通用帧格式介绍1、802.11通用帧格式  由上图可以看出,802.11帧总共有如下几个字段:Frame Control、Duration ID、Address1、Ad...

2018-09-15 11:52:50 21999 1

原创 实战总结----用Makefile编译生成动态链接库.so

写在前面:1、在实际项目开发当中,库文件用的很多,尤其是在不同的 企业之间为了防止源码公开,都是以库的形式提供给对方,然后提供必要的头文件就可以了。本文主要介绍Linux下和Windows下的库的格式,以及动态链接库和静态链接库的作用,Linux下如何用Makefile编译制作动态链接库的方法。2、Makefile博大精深,在平时用的不多,所以本文也是对刚刚用过的Makefile简单使用的...

2018-08-25 11:20:21 22630 2

原创 FreeRtos mutex

FreeRtos中二值信号量、计数信号量、互斥锁、递归互斥锁都是用queue来实现的,mutex的使用涉及到任务优先级的提升和恢复,本篇以mutex的源码实现来分析其中原理。

2024-03-16 13:21:55 333

原创 FreeRtos Queue(四)

本篇主要分析xQueueReceive,从队列中读取消息,读消息也是在死循环里操作的,大致分为两个逻辑:1、队列不为空的时候的处理2、队列为空的时候的处理。

2024-03-02 13:11:31 206

原创 FreeRtos Queue(三)

本篇主要分析向队列中发送消息 xQueueGenericSend 这个函数。大致分为两个逻辑:1、当队列没满的时候的处理2、当队列没满的时候的处理主意:整个xQueueGenericSend是在for(;;)中处理的。

2024-02-24 13:41:07 232

原创 FreeRtos Queue (二)

1、prvLockQueue和prvUnlockQueue是FreeRtos内核函数,只能供内核调用,应用层无法call。2、cTxLock和cRxLock为中断上锁计数器,cTxLock记录了队列上锁期间在中断里入队的数量,cRxLock记录了队列上锁期间在中断里出队的数量。

2024-01-27 13:02:01 223

原创 FreeRtos里的几个中断屏蔽

在这个中断里面打了个断点,debug了一下,当前系统中configMAX_SYSCALL_INTERRUPT_PRIORITY是0x10。FreeRtos的开关中断就是通过basepri寄存器实现的。例如: portDISABLE_INTERRUPTS()然后portENABLE_INTERRUPTS()开中断。取消对中断的屏蔽,可以直接将basepri清零。

2023-12-16 13:31:30 256

原创 FreeRtos第一个task是怎么run起来的

第一个task是怎么起来的呢?分析完vTaskStartScheduler,就会有答案了。那vTaskStartScheduler()干了啥呢?

2023-12-02 13:12:28 143

原创 FreeRtos任务创建分析

以xTaskCreateStatic为例。xTaskCreateStatic中调用了两个函数:prvInitialiseNewTask 和prvAddNewTaskToReadyList。

2023-11-25 15:15:18 115

原创 FreeRtos 任务切换深入分析

跳转到vTaskSwitchContext这个C函数中执行,这个函数中就将下一个要执行的任务的TCP更新到。2、freertos的任务切换是在xPortPendSVHandler 中断函数中完成的。将r4-r11,r14保存到任务栈psp中。并将栈顶位置写入到r2中,即。1、任务切换包含三个基本流程:保护现场、更新TCB、恢复现场并跳转。将r3和r0从msp中恢复出来,注意:此时的r3中的。此时的sp为msp,即将r3、r0保存到msp中。r14即LR中记录了中断返回的地址,跳转执行。

2023-11-18 14:11:02 319

原创 GDB 跳转执行

【代码】GDB 跳转执行。

2023-10-14 15:00:32 220

原创 GDB 源代码查看、管理、搜索、设置源代码目录,调试发行版,观察点

forward-search :跟 search功能一样。C_FLAGS中加入-g选项后,生成的可执行文件中会保存调试信息。1、 set listsize 10:设置list查看的代码行数。reverse-search:反向搜索。3、directories 路径:添加源代码路径。list 函数名: 产看函数代码。list -: 向前查看代码。

2023-09-09 10:17:50 498

原创 GDB 函数调用栈管理

1、bt:backtrace 查看栈回溯信息。#0号栈桢表示正在执行的函数,在栈的最顶部。3、info f n 查看栈桢信息。2、frame n 切换栈桢。栈的调用关系:后进先出。

2023-08-12 13:55:57 240

原创 GDB 为断点执行命令

4、把断点信息从文件中加载进来。

2023-08-05 14:47:31 113

原创 GDB 寄存器的查看与修改

按顺序存放在寄存器r0,r1,r2,r3里,超过4个参数值传递则放栈里。2、 info registers :打印通用寄存器的内容。info all-registers:打印所有寄存器的内容。4 disassemble : 查看函数反汇编地址。3、info line 行号:查看代码反汇编地址。5、通过修改pc来改变程序执行的流程。1、 函数参数:参数。

2023-07-21 19:36:36 1423

原创 GDB 查看、修改内存

f是显示方式:x16进制、d 10进制、u 6进制无符号、c 字符格式、f 浮点数格式。u是一种地址的单元长度:b 单字节、h 双字节、w 四字节、g 八字节;x /4d 地址名: 以十进制形式显示改地址的4个bytes。2、x /nb 地址: 查看该地址n个bytes的内容。3、 x /s 地址名:该地址以字符串形式的内容。1、 p &变量名:查看变量的地址。或者 x /30b 结构体地址。格式: x /选项 内存地址。n是要显示的内存单元个数。

2023-07-10 17:54:39 2024

原创 GDB 查看、修改变量

p strlen(xxx) : 产看字符串xxx的长度,注意不能直接strlen,必须加p。5、 p sizeof(xxx) : 查看xxx的大小,注意不能直接sizeof(),必须加p。3、set print pretty :让结构体以定义的形式展示出来,一个字段一行。2、set print null-stop :遇到无效的字符就不显示出来了。4、 set print arry on :让数组中的元素每个占一行显示。6、p 变量名称 = 变量值: 修改变量的值。

2023-07-08 13:09:54 876

原创 GDB 查看变量类型信息

【代码】GDB 查看变量类型信息。

2023-07-05 09:06:25 430

原创 GDB 断点管理

6、禁用/使能某个断点 : disable 断点号 enable 断点号。2、rb 函数名关键字 : 所有带有这个关键字的函数名都设置为断点。8、info locals :打印本函数的局部变量。5、查看某个断点的信息: info b 断点号。usage 2: b 文件名:行号。usage 1: b 函数名。7、删除所有断点: delete。4 、临时断点: tb。

2023-07-01 12:00:43 211

原创 Linux sed 命令简要

Linux sed

2022-07-23 16:53:02 4658 1

原创 gcc/g++编译器的编译过程

2021-11-04 14:31:42 169 1

原创 C++拷贝构造函数

#include <iostream>using namespace std;/*二个特殊的构造函数1)默认无参构造函数 当类中没有定义构造函数时,编译器默认提供一个无参构造函数,并且其函数体为空2)默认拷贝构造函数 当类中没有定义拷贝构造函数时,编译器默认提供一个默认拷贝构造函数,简单的进行成员变量的值复制*/class Test{public: Test() { cout << "无参构造" << endl; } Te.

2021-10-28 11:56:04 302

原创 Linux 下Jlink GDB 断点调试步骤

写在前面: 本篇写于2021.9.21,阴历8.15,今年中秋,祝:国泰民安,身体健康,事业兴旺。今天整好公司安排加班,对Jlink GDB单步调试做个简单总结。1、在第一个shell终端下打开JlinkJDBServer 并选择芯片型号2、在另一个shell终端下arm-none-eabi-gdb 目标elf 文件,并tar jlink目标端口23313、设置断点: (1)、设置函数断点:b 函数名 info b 可打印...

2021-09-21 15:06:22 3263

原创 Linux 文件总结(二)

一、Linux文件系统结构 1、 文件操作的基本元素:目录结构(目录项)、索引节点(i节点)、文件的数据 2、从文件名到文件内容: 在目录中找到文件名--->目录项中包含i节点的位置----->在i节点中找到数据块的列表二、文件硬链接 1、创建硬链接的shell命令 ln srcpath newpath2、硬链接在内核中的存在形态3、创建文件硬链接的相关API...

2021-03-05 15:20:45 203

原创 Linux 文件总结(一)

1、文件的属性都在如下的结构体当中 2、文件属性操作API (1)、 int stat(const char* pathname, struct stat* buf); (2)、 int fstat(int fd , struct stat * buf); (3)、 int lstat(const char * pathname , struct stat* buf); 功能:返回与pathname 或 fd 指定的文件属性信息,存储在bu...

2021-03-02 11:33:07 221

原创 总结:乱七八糟的2020年

如题,是时候对乱七八糟的2020从几个维度做一次总结了。1、关于新冠疫情 突如其来的病毒,打破了我们的生活规则,也注定了今年不会太平,无数中小企业倒闭破产,无数员工失业负债。举国之力遏制下的病毒,到年底又出现了反复,希望疫苗赶紧稳定、普及,消灭病毒,然后大家去做自己想做的事情。生命只有一次,活着真好。2、关于科比 尽管很不愿意接受这个现实 ,但曼巴已经离世一周年了。今天,一边旷工,一边断断续续的看了腾讯NBA科比离世一周年特别节目《当我想你的时候》,曼巴精神...

2021-01-27 19:35:47 335 2

原创 IPC(五)---------信号量

一、信号量和信号量集简介 1、用于进程间的互斥和同步,来控制对共享资源的访问。 2、为了便于对大量共享资源的操作引入了信号量集,每个共享资源对应一个信号量。 3、信号量的操作:P(对信号量减)操作和V(对信号量加)操作。二、信号量相关API 1、创建信号量集 int semget(key_t key,int nsems,int flag); 参数: key:用户指定的信号量集键...

2021-01-21 15:12:48 187

C++数据结构与算法.7z

C++数据结构与算法,深入浅出,视频教程,非常容易通俗易懂,适合有一定基础的人学习,非常适合。

2020-05-22

轻松搞定c++.7z

非常详细的easy 搞定c++文档,非常适合从入门到精通的学习,同学们可以下载福利了,非常高效,非常高效,非常高效哦。

2020-03-06

蓝牙5.2核心规范.7z

本文为官方的蓝牙5.2核心规范,记录了ble5.2的先进特性和工作原理,有需求的同学可下载查看。谢谢。

2020-01-07

源码:FAT32在STM32上移植.7z

在stm32上移植了FAT32文件系统,大家可以下载下来看看吧,说不定有帮助。

2019-05-30

TouchGfx入门教程.7z

本文为TouchGfx的入门教程,TouchGFX为复杂图形的开发提供了一个可以通过触摸进行控制的框架。

2019-05-27

java入门学习资料

学习Java基本语言时,做的笔记,还是比较详细全面的,作为入门的比较好的学习资料

2019-05-24

java从入门到精通视频教程

java从入门到精通完美视频教程,非常基础,鉴证从了解到学会精通的整个流程。

2019-04-18

深入理解安卓系统

本书为深入理解Android 系统的压缩包,这本书对于有嵌入式功底来了解Android还是比较有帮助的。

2019-04-12

Core_V5.1 (21 Janaury 2019)

蓝牙5.1core spec,很详细的介绍了ble的所有特性功能。

2019-01-31

linux内核视频教程全套

非常详细的linux内核视频教程,比较健全,适合入门到精通。

2018-12-01

Linux网络编程全接笔记

很详细的linux网络编程资料,非常细致,有需求可下载。

2018-12-01

广播抓包工具

很好用的udp广播组包抓包工具,简单上手,作用很大,有需求的可下载。

2018-11-16

组播抓包工具

很好用的UDP抓包工具,简单易懂非常好用,有需求可下载。

2018-11-16

wireshark抓包工具

wireshark抓包工具,网络分析必备工具,有需求可下载使用。

2018-11-16

红外芯片hxd019d代码

红外芯片hxd019d驱动代码,数据协议解析,有需求者可下载。

2018-09-26

linux网络基础和网络编程

linux网络基础、socket编程,网络编程、服务器高并发编程参考文档。

2018-09-17

libevent入门学习资料

附件为本人整理的libevent的入门学习资料,时候零基础学习。

2018-09-10

VS2017开发环境一建下载

VS2017开发环境一键安装,里面很多插件都是可以选择性安装的。

2018-09-10

SSD1306 oled 驱动代码

附件为ssd1306控制器的驱动oled,调试ok,有需求的可下载。

2018-07-27

SpiFlash驱动代码

附件为spi flash的驱动代码,均已调试OK,有需求的可下载查看。

2018-07-27

三轴芯片lis2dh12驱动代码

本driver为ST的三轴芯片lis2dh12驱动代码,已经调试OK,清有需要的人下载。

2018-07-27

Linux应用编程和网络编程

本人为本人学习linux应用编程和网络编程时整理的文档,大家根据需求下载。

2018-07-27

gsensor原始数据到简单计步

实现由gsensor原始数据到步数计算的简单计算方法,主要用在手环项目中。

2018-06-28

ST 各类sensor 驱动

附件基本涵盖了ST的所有sensor的驱动代码,例如三轴加速度,六轴A+G,温度sensor等等。

2018-06-07

gsensor LIS2DH12 datasheet

本篇文档主要说三轴加速度传感器gsensor 型号为LIS2DH12芯片的datasheet,通过本篇datasheet可以了解该芯片的使用方法。

2018-06-07

_SSD1306_说明文档

OLED 驱动IC ssd1306开发文档说明,里面详细介绍了SSD1603这款IC的使用配置方法。

2018-05-22

micro_ecc_lib_nrf52.lib 文件

编译NRF52832 secure bootloader时所需要的lib库文件。

2018-05-11

串口调试工具

大傻串口调试软件是一款拥有自动识别串口、接收发送文件、自动连续发送数据等功能。支持端口,波特率,数据位,校验位,停止位等参数的调试,软件最多可支持20个串口,新版本还增强了关键字过滤功能。

2018-05-10

jlink驱动V502

ARM调试工具Jlink安装驱动,V5.0.2版本。J-Link是SEGGER公司为支持仿真ARM内核芯片推出的JTAG仿真器。配合IAR EWAR,ADS,KEIL,WINARM,RealView等集成开发环境支持所有ARM7/ARM9/ARM11,Cortex M0/M1/M3/M4, Cortex A5/A8/A9等内核芯片的仿真,与IAR,Keil等编译环境无缝连接

2018-05-10

空空如也

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

TA关注的人

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