木易muyi
码龄6年
关注
提问 私信
  • 博客:65,109
    社区:2
    动态:25
    65,136
    总访问量
  • 28
    原创
  • 2,342,347
    排名
  • 95
    粉丝
  • 0
    铁粉

个人简介:无

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:陕西省
  • 加入CSDN时间: 2018-10-04
博客简介:

Bug开发工程师的博客

查看详细资料
个人成就
  • 获得97次点赞
  • 内容获得33次评论
  • 获得524次收藏
  • 代码片获得409次分享
创作历程
  • 9篇
    2022年
  • 10篇
    2021年
  • 9篇
    2020年
成就勋章
TA的专栏
  • 随笔
    2篇
  • keil
    1篇
  • Linux系统编程
    8篇
  • FreeRTOS
    1篇
  • STM32
    11篇
  • LeetCode
    1篇
  • LVGL
    1篇
  • 通讯协议
    4篇
  • IIC
    3篇
  • HAL库
    2篇
  • Linux
    2篇
  • FLASH
    1篇
  • 资料分享
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 帖子
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

柔性数组介绍

在结构体中存放一个动态长度的字符串有两种方法:指针和柔性数组。柔性数组:运行结果
原创
发布博客 2022.06.13 ·
182 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

I/O多路转接

什么是I/O多路转接?对大量的文件描述符进行I/O事件监控。IO事件包括:可读事件、可写事件、异常事件函数selectint select( int nfds, fd_set *readfds, fd_set *writefds,fd_set *exceptfds, struct timeval *timeout );参数nfds:在下面3个文件描述符集中找到最大的文件描述符,然后+1。参数readfds和writefds和exceptfds:描述符集的指针,可以将它看成是一个数组。这3
原创
发布博客 2022.05.20 ·
2626 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

getline

getlinegetline源码,根据源码编写自己的getline函数,只保留核心功能,。#define GETDELIM_GROWBY 64/** * @brief 读取一行数据 * * @param lineptr 数据存放缓冲区 * @param n lineptr的大小 * @param stream * @return ssize_t 成功返回读取到的数量,失败返回-1 */ssize_t mygetline( char **lineptr, size_t *n, FIL
原创
发布博客 2022.05.01 ·
704 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

文件IO缓冲

文件I/O缓冲系统I/O调用和C语言库I/O函数在操作磁盘文件时会对数据进行缓冲介绍read() 和 write() 调用在操作磁盘文件时不会直接发起磁盘访问,而是仅仅在用户空间缓冲区和内核缓冲区高速缓存之间复制数据。在后续某个时刻,内核会将其缓冲区的数据刷新到磁盘。当把缓冲区中的数据取完,这时内核会将文件的下一段内容读入缓冲区。采用这一设计,使 read() 和 write() 调用的操作更为快捷。Linux 内核对缓冲区的大小没有固定上限。受限于:物理内存总量处于其他目的对物理内存的需求
原创
发布博客 2022.04.24 ·
255 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Linux内存映射

内存映射按文件分:文件映射:将一个文件的一部分直接映射到调用进程的虚拟内存中匿名映射:没有对应文件,被映射的分页会初始化为0按权限分:私有映射:写时复制,变更不会再底层文件进行共享映射:变更发生在底层文件将上面两两组合:私有文件映射:使用一个文件的内容来初始化一块内存区域私有匿名映射:为一个进程分配新的内存共享文件映射:代替 read() 和 write() 、IPC共享匿名映射:实现相关进程实现类似于共享内存进程执行 exec() 时映射会丢失,但通过 fork()
原创
发布博客 2022.04.20 ·
1673 阅读 ·
0 点赞 ·
0 评论 ·
5 收藏

System V 共享内存

System V 共享内存fork() 创建的子进程会继承其父进程附加的共享内存段API 函数创建或打开共享内存#include <sys/types.h>#include <sys/shm.h>int shmget( key_t key, size_t, int shmflg );参数 key:由 IPC_PRIVATE 或 ftok() 生成的键参数 size:表示需分配共享内存的字节数内核是以系统分页大小的整数被来分配共享内存的,所以会 size 会被提
原创
发布博客 2022.04.19 ·
195 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

System V 信号量

System V 信号量API 函数创建或打开一个信号量集#include <sys/types.h>#include <sys/sem.h>int semget( key_t key, int nsems, int semflg );成功返回信号集的标识符参数 key:由 IPC_PRIVATE 或 ftok() 返回的键参数 nsems:创建信号集时:nsems 指定信号量的数量,必须大于0获取信号集时:nsems 必须小于等于集合的大小参数 s
原创
发布博客 2022.04.16 ·
1171 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

ELF目标文件分析

ELF目标文件分析源代码#include <stdio.h>int printf( const char* format, ... );int global_init_var = 84;int global_unint_var;void func1( int i ){ printf( "%d
", i );}int main( void ){ static int static_var = 85; static int static_var2
原创
发布博客 2022.04.12 ·
387 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

System V 消息队列

消息队列创建消息队列#include <sys/types.h>#include <sys/msg.h>int msgget( key_t key, int msgflg )成功返回消息队列的标识符,它是消息队列的句柄。失败返回-1和设置error参数 key 是一个键,用于生成唯一的标识符。可由 IPC_PRIVATE或 ftok() 生成。参数 msgflg 是权限位和下面这些位组成:IPC_CREAT:没有于指定 key 对应的消息队列,则新建一个I
原创
发布博客 2022.04.12 ·
708 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

Keil的编译器优化级别和调试视图

Keil的编译器优化级别和调试视图Compiler User Guide: Compiler optimization levels and the debug view编译器执行的精确优化取决于选择的优化级别,以及您是针对性能还是代码大小进行优化。编译器支持以下优化级别:0最小优化。 关闭大多数优化。 启用调试时,此选项可提供最佳调试视图,因为生成的代码的结构直接对应于源代码。 所有干扰调试视图的优化都被禁用。 特别是:断点可以设置在任何可到达的点上,包括死代码。变量的值在其范围内的任何地
原创
发布博客 2021.11.20 ·
2693 阅读 ·
2 点赞 ·
0 评论 ·
14 收藏

vTaskNotifyGiveFromISR源码分析

以STM32平台为例,在STM32中数值优先级越低,逻辑优先级越高。 void vTaskNotifyGiveFromISR( TaskHandle_t xTaskToNotify, BaseType_t *pxHigherPriorityTaskWoken ) { TCB_t * pxTCB; uint8_t ucOriginalNotifyState; UBaseType_t uxSavedInterruptStatus; configASSERT( xTaskToNotify ); (
原创
发布博客 2021.11.18 ·
1033 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

FLASH预取

FLASH预取在stm32中,我们的代码都是放在flash中的,内核是M3,内核要读flash中的code,它是一条一条读一条一条执行的。读完第一条,还没读第二条代码时,内核先会把将要读的读的第二条代码先取好,放好等待它去读,这个过程称为预取指。Cortex处理器采用的是三级流水线的哈佛结构,一条指令的执行分为:取指阶段(Fetch stage)、译码阶段(Decode stage)、执行阶段(Execute stage)。CPU 通常需要 4 个周期( 72Mhz下, 2 个等待周期)读取 64
原创
发布博客 2021.11.09 ·
3343 阅读 ·
1 点赞 ·
0 评论 ·
8 收藏

3. 无重复字符的最长子串

滑动窗口解题思路left 和 right 都处于最左边指向right 不断向右遍历直到末尾(在遍历期间遇到了重复的元素 right 就停下来,然后 left 开始向右遍历直到删除重复的元素,然后 right 继续向右遍历)在遍历期间不断更新最长子串的长度代码class Solution {public: int lengthOfLongestSubstring(string s) { int ret = 0; int left = 0;
原创
发布博客 2021.08.22 ·
116 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

LVGL v7移植到ARM平台

本次移植的是LVGL v7.110硬件平台:野火IMX6ULL参考博客:实践分享 | 基于framebuffer的lvgl的移植使用_嵌入式大杂烩-CSDN博客⭐建立一个lvgl项目 — 百问网LVGL系列教程 1.0 文档 (gitee.io)1 下载所需要的仓库git clone git://github.com/lvgl/lvgl.git -b v7.11.0 #官方图形库git clone git://github.com/lvgl/lv_drivers.git -b v7.11..
原创
发布博客 2021.06.12 ·
881 阅读 ·
0 点赞 ·
1 评论 ·
9 收藏

freetype显示中英文

freetype显示中英文参考博客:04.freetype显示中文_//查无此人的博客-CSDN博客_freetype 中文freetype的安装与使用_explore_world的博客-CSDN博客_freetype安装 使用freetype来显示中文汉字和英文字符_mlove编程-CSDN博客3.数码相框-通过freetype库实现矢量显示 - 诺谦 - 博客园 (cnblogs.com)1 安装freetypefreetype-2.10.0.tar.gz链接:https://pan.b
原创
发布博客 2021.05.15 ·
1092 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

modbus-tk学习笔记

对于modbus ASCII 模式,使用的是高位字节在前,低位字节在后。使用LRC校验。对于modbus rtu 模式,使用的是低位字节在前,高位字节在后。使用CRC校验。参考博客:modbus 入门篇,不冗长,很好理解!MODBUS学习笔记——modbus tk modbus TCP主机实现_物联网 IoT 经验分享-CSDN博客_modbus_tkmodbus协议中的寄存器理解0.前言modbus是一种古老但是高效的应用层协议。在嵌入式和PC机领域有多种方法实现modbus协议栈,mo.
原创
发布博客 2021.05.15 ·
7396 阅读 ·
7 点赞 ·
5 评论 ·
52 收藏

AT24C02数据存储

一、引脚说明WP:当该引脚接GND时可读可写,接Vcc只读。二、器件地址开发板原理图:所以器件写地址为0xA0,读地址为0xA1。三、写操作
原创
发布博客 2021.01.15 ·
1092 阅读 ·
1 点赞 ·
0 评论 ·
6 收藏

模拟IIC(HAL库)

有关IIC的详细教程请看博主的另一篇文章本文只展示HAL库代码 /** * @brief 初始化IO * @param 无 * @retval 无 */void IIC_GPIO_Config(void){ GPIO_InitTypeDef GPIO_InitStruct; IIC_GPIO_CLK_ENABLE(); GPIO_InitStruct.Pin = IIC_SCL_PIN | IIC_SDA_PIN;
原创
发布博客 2021.01.06 ·
2803 阅读 ·
0 点赞 ·
0 评论 ·
16 收藏

模拟IIC-HAL库.7z

发布资源 2021.01.06 ·
7z

有大佬知道为什么make失败,研究半天还是没研究出来,救救孩子

发布动态 2020.12.13
加载更多