自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 linux内核container_of宏使用详解

linux内核代码有很多巧妙地设计,其设计思想值得我们深入学习分析.今天来分析一下linux内核中大量使用的一个宏定义container_of(ptr, type, member)先上功能定义:已知结构体type的成员变量member的地址是ptr,推导出结构体变量的首地址./** * container_of - cast a member of a structure out to the containing structure * @ptr: the pointer to the

2022-01-23 12:58:49 1481

原创 linux应用程序串口操作及配置

linux应用程序串口基本操作及波特率相关参数设置.

2022-01-15 22:30:04 1437

原创 UCOS你问我答系列之消息队列详解

消息队列是UCOS系统的一种通讯机制,它可以使任务向任务或者中断向任务发送一个指针变量.指针变量指向的数据结构由用户自定义,即我们常说的消息.首先来看一下UCOS消息队列结构体的设计.本文使用的UCOS版本:V2.91.消息队列结构体设计消息队列结构体的本质设计是一个环形缓冲区.OSQStart,OSQEnd标识唤醒缓冲区的首尾边界. OSQIn,OSQOut在环形缓冲区内移动,标识当前队列内数据变化情况.typedef struct os_q { /*

2022-01-15 10:50:56 1261

原创 UCOS你问我答系列之消息邮箱详解

邮箱是UCOS的一种通讯机制, 它可以使一个任务或者一个中断服务程序向另一个任务发送一个void *OSEventPtr指针变量,该指针指向一个特定的数据结构.即通过该指针传递消息.事件控制块说到消息邮箱, 首先需要讲解一下UCOS的事件控制块.UCOS的信号量,消息邮箱,消息队列.都是使用OS_EVENT结构体来标识的. 结构体成员变量OSEventType标识不同的事件类型(信号量,消息队列等).OS_EVENT *OSMboxCreate (void *pmsg){ OS_E

2022-01-15 10:45:43 2107

原创 UCOS你问我答系列之信号量详解

UCOS信号量内部实现方式详解,应用场景分析.

2022-01-15 10:35:00 1164

原创 w25qxx spi flash WP写保护引脚的正确使用方式

WP引脚使用方式spi flash有一个外部写保护引脚WP, 此引脚并不是直接保护flash上的数据内容,而是保护状态寄存器不被异常改写.flash上的内容写保护是通过状态寄存器的BPxbit的不同组合来实现的. 对于环境相对恶劣的使用场景(供电不稳等.)需要对flash上的内容加以保护.整体的设计思路就是 使用状态寄存器的BPx位组合实现flash上数据内容的局部或整体写保护. 外部WP引脚的电平状态结合状态寄存器的SRP位实现状态寄存器的保护进而间接保护flash上受保护的数据内容.通过BP..

2022-01-13 21:19:47 15995

原创 UCOS你问我答系列之系统时钟节拍详解

前言系统时钟节拍是多任务得以正常运行的基石,ucos的系统时钟节拍一般依赖于MCU的硬件定时器.硬件定时器产生固定时间间隔的中断,中断中调用ucos的系统函数,完成多任务操作系统的基本调度功能.本文使用的ucos版本:V2.91.代码分析讲解在本例中我们设定ucos的时钟频率为100HZ,即10ms进入一次系统时钟中断. #define OS_TICKS_PER_SEC 100u每10ms执行的系统时钟中断相关函数如下:void SysTick_Handler(void){

2022-01-11 18:02:10 1412

原创 OSEventPendMulti因使用不当导致的软件偶发性监听不到某个事件

OSEventPendMulti使用注意事项,不当使用导致收不到某些事件.

2022-01-10 22:15:00 422

原创 嵌入式linux交叉编译sqlite3

嵌入式linux交叉编译sqlite3,开发板使用sqlite数据库.

2022-01-09 22:10:39 1360

原创 ubuntu qt支持中文输入,嵌入式QT支持中文显示.

ubuntu qtcreator支持中文输入, 嵌入式开发板使用文泉驿字体支持中文显示.

2022-01-08 23:07:57 895

原创 windows文件linux下乱码,iconv格式转换

在windows下编写的文件有些编辑器默认使用GBK编码,文件在ubuntu下打开会显示乱码.可以在ubuntu下使用如下指令对文件编码格式进行转换.将GBK编码转换为UTF-8.iconv -f gbk -t utf-8 test.txt > test1.txt-f 后跟待转换文件的编码的编码格式-t 后跟期待转换完成后的编码格式test.txt指输入文件test1.txt指输出文件...

2022-01-06 23:00:00 747

原创 C语言单链表实现增删改查

单链表增删改查,附实现思路及完整代码.

2022-01-06 22:30:00 3381

原创 分散加载, 链接脚本实现函数、变量的重定位.boot、app代码合并

链接脚本实现函数、变量的重定位.boot、app代码合并一.背景介绍常见的单片机IAP方案是使用两个工程. 一个boot工程,编译链接到内部flash前N(假定16K)地址, app工程代码编译链接到16K之后的地址. 应用程序通过某种方式(串口、网络等).将待升级的app代码拷贝到外部存储器. 然后设定好相应的标志位.重启,boot代码从外部存储器的 指定地址拷贝待升级的app到内部flash的相应地址.实现app的升级. 在IC短缺,供货紧张的大背景下,我们拿到的芯片的flash大小可能并不如我

2022-01-04 17:11:59 1129 2

原创 CMake生成应用程序软件版本编译时间,自动管理编译后输出文件.

cmake生成应用程序版本编译时间信息.编译后自动归档镜像文件.简化嵌入式终端产品版本控制.

2021-12-24 19:00:00 2261

原创 stm32 lib库制作

有时候我们别人需要使用我们的程序,但是我们又不想别人看到我们的源代码,可以选择将将代码编译成库,供使用者调用。库文件的制作方法如下:比如我们想将工程中的usb.c做成lib库,供别人调用。一、首先我们将工程拷贝一份,在拷贝出来的工程中进行制作。编译代码,保证代码编译通过。删除其他的代码,只保留usb.c在Optonos for Target--->Output...

2018-07-18 17:26:51 4997

原创 stm32内存布局

使用stm32f103vct6 官方信息显示SRAM大小48K,实际使用发现其大小为64KStack_Size       EQU     0x00004000                            //栈大小为16KHeap_Size        EQU     0x00003000                            //堆大小为12K栈范围  ...

2018-07-18 17:23:17 1370

原创 source insight回车换行{}对齐

source insight有时存在回车换行后对齐存在问题,可以通过如下设置解决:菜单Options中,点击Document Options,出现的对话框中点击Auto  Indenting,弹出的对话框中,将Smart Indent Options里的两个选项复选框取消即可。

2017-08-17 11:11:03 5646

转载 C内存分配

在任何程序设计环境及语言中,内存管理都十分重要。在目前的计算机系统或嵌入式系统中,内存资源仍然是有限的。因此在程序设计中,有效地管理内存资源是程序员首先考虑的问题。第1节主要介绍内存管理基本概念,重点介绍C程序中内存的分配,以及C语言编译后的可执行程序的存储结构和运行结构,同时还介绍了堆空间和栈空间的用途及区别。第2节主要介绍c语言中内存分配及释放函数、函数的功能,以及如何调用这些函数申请/释放

2017-08-11 11:53:47 157

原创 strlen和sizeof的区别

strlen是C语言的一个函数,用来求字符串的实际长度。不包括‘\0’。sizeof是C语言的关键字,用来返回一个对象或者类型所占的内存字节数。char str[10] = "1234";printf("%d %d\n",strlen(str),sizeof(str));上述程序strlen(str)计算的是数组中的数据的实际长度(注意不包括\0),这是在程序运

2017-08-08 17:17:01 169

空空如也

空空如也

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

TA关注的人

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