- 博客(13)
- 收藏
- 关注
原创 位段内存分布和枚举
前提:基础类型,存储单元为 32bit。(小端编译器,绝大多数 MDK、GCC 都是),。按照4字节或者8个字节来开辟位段应该是同类型,位段。
2026-08-15 16:09:18
40
原创 自定义类型:结构体
1、结构体作用 把多个不同类型的数据打包在一起,形成一个新的数据类型。总结一下结构体内存对齐的规则;规则 1: 偏移量为相对于首元素的倍数关系 (倍数为:编译器的值和该数据类型的较小值 // 该倍数又叫做对齐数) 规则 2: 最后计算结构体内存的时候应该为最大对齐数的整数倍,验证一下呗结构体有嵌套结构体的话:嵌套结构体对齐到自己的最大对齐数的整数倍,结构体的整体大小就是所有最大对齐数(包含嵌套结构体)的整数倍为什么要结构体对齐?实际上是用空间换时间。
2026-08-14 19:53:28
24
原创 b站铁头山羊Freertos入门篇学习3
创建任务时,任务由两部分组成,TCB(任务控制块100个字节左右)和任务栈(每个任务单独的调用栈,该参数为创建任务函数中任务栈深度)freertos自行管理的堆内存存放在数组(ucheap)里,该数组为全局静态变量,所以实际上对于sram的heap段。主函数和中断服务程序还是使用sram对应的stack段(所以编写程序时,不能把sram栈的大小设置为0)这是freertos的5种堆内存管理方式,配置的时候选一种即可。frtos中的五种堆内存管理方式,默认选第四种。上节我们说到freertos的代码规范。
2026-07-22 10:52:29
255
原创 b站铁头山羊freertos入门篇学习2
第一步:调用创建任务的API(Application Programming Interface的缩写)xTaskCreate()或者xTaskCreateStatic(),一种是动态创建,另一种为静态创建(高级用法),动态创建是通过“堆内存来分布的”返回值用来表示任务是否被创建成功,如果返回的是pdPASS则表示任务创建成功,如果是其它值则表示任务创建失败。调度器总是选择更高优先级的任务来执行,当高优先级的任务就绪的时候当前任务会立刻被抢占。参数3:调用任务栈的深度(一般填128,为128*4个字节)
2026-07-22 09:56:50
190
原创 b站铁头山羊freertos入门篇学习1
FreeRTOS英文名为 real_timeOS,TSOS为分时操作系统(windos系统)详细见:FreeRTOS官方网站地址:如果我们要在开发版编写以下程序,让LED1每次点亮100ms、熄灭100ms,同时让LED3每次点亮50ms、熄灭150ms。我们注意到这两个LED的亮灭周期都为200ms,程序相对来说比较好设计那如果变复杂一点,比如说周期不一样,那么就需要用到状态机的思想。LED1仍然点亮100ms、熄灭100ms,但LED3的情况有所变化,这次它亮灯30ms、灭灯150ms。
2026-07-17 16:57:31
394
原创 数组_指针
本文介绍了数组指针的概念及其与二级指针的区别,重点说明了数组指针在二维数组中的应用。示例展示了如何定义和使用数组指针来访问一维和二维数组元素,并对比了错误写法与正确写法。特别强调了在二维数组场景下,数组指针能方便地按行访问数据,通过指针算术运算或数组下标两种等价方式实现遍历。文章指出数组指针在处理多维数组时比简单指针更具优势,尤其适用于需要按行操作的场景。
2026-07-16 20:40:38
27
原创 c语言进阶_字符串指针
本文总结了C语言中字符串和指针的关键知识点:1. 区分字符数组与常量字符串的定义与修改权限,强调常量字符串应使用const修饰;2. 对比指针与数组的存储特性,常量字符串会被编译器优化存储一次;3. 演示指针数组操作二维数据的两种等价方法;4. 解析数组指针的特殊性,通过地址运算验证&arr与arr在指针步长上的本质差异。核心要点包括内存管理、类型修饰符const的正确使用,以及数组名在sizeof和&操作中的例外行为。
2026-07-14 20:16:38
58
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅