- 博客(15)
- 收藏
- 关注
原创 辨析linux的struct stat中st_size与st_blksize*st_blocks的大小
是由于:整数溢出,代码中:5*1024*1024*1024-1没有带单位,导致linux默认为int类型大小,最大也是2^31-1,所以,应进行类型转换。st_blksize*st_blocks的大小相当于Windows下占用磁盘的大小。st_size仅是一个文件的属性。创建一个5G大小的文件。
2024-10-07 20:36:37
326
1
原创 启动文件的介绍
启动文件由汇编编写,是系统上电复位后第一个执行的程序。启动文件主要做了以下工作: 即main函数之前要完成如下步骤:1、初始化堆栈指针 SP = _initial_sp2、初始化程序计数器指针 PC = Reset_Handler3、设置堆和栈的大小4、初始化中断向量表5、配置外部 SRAM 作为数据存储器(可选)6、配置系统时钟,通过调用 SystemInit 函数(可选)7、调用 C 库中的 _main 函数初始化用户堆栈,最终调用 main 函数。
2024-07-10 17:00:56
1256
原创 keil生成的.map文件
上图中,红框框出的部分:main.o(i.main) refers to sys.o(i.sys_stm32_clock_init) for sys_stm32_clock_init,表示:main.c文件中的main函数,调用了sys.c中的sys_stm32_clock_init 函数。最大地址范围为:0X0002 0000。图中红框框处部分,表示 sys.c 文件中的 sys_stm32_clock_init 函数的入口地址为: 0x08002bc8,类型为:Section(程序段),大小为 0。
2024-07-10 12:30:00
2249
原创 USART-Timer面向对象的思想
这点非常重要,因为开发初期,可能开发者根本不知道该 ARM 器件上有什么输入输出设备,而半主基机制使得你不用知道ARM器件的外设,利用主机电脑的外设就可以实现输入输出调试。/*为确保没有从 C 库链接使用半主机的函数,因为不使用半主机,标准 C 库 stdio.h 中有些使用半主机的函数要重新写 ,您必须为这些函数提供自己的实现。半主机是这么一种机制,它使得在ARM目标上跑的代码,如果主机电脑运行了调试器,那么该代码可以使用该主机电脑的输入输出设备。如果仍然链接了使用半主机的函数,则链接器会报告错误。
2024-07-09 09:15:00
1079
原创 OTA的内容
OTA全称“Over-The-Air”,即空中下载技术,早期被广泛应 用在手机行业中,终结了手机软件升级需要连接电脑、下载软件、 再安装更新的繁复操作。OTA升级:通过OTA方式实现固件或软件的升级。只要是通过无线通信方式实现升级的,都可以叫OTA升级,比如网 络/蓝牙。通过有线方式进行升级,叫本地升级,比如通过UART,USB或者 SPI通信接口来升级设备固件。
2024-07-08 22:29:05
669
原创 FreeRTOS
队列是一种常用于任务间通信的数据结构,队列可以在任务与任务间、中断和任务间传递信息,实现了任务接收来自其他任务或中断的不固定长度的消息(而这个消息可以是任意类型的数据),任务能够从队列里面读取消息,也能够向队列发送消息。队列可以被多个任务读、也可以被多个任务写,但要防止同一时刻被多个任务访问(多进程/多线程(多任务)对共享变量的并发访问)只有两个值的计数信号量。计数值信号量是长度大于0的队列,计数值信号量常用于事件计数、资源管理,其实如果限定计数信号量计数值最大值只能为1则就等同于二值信号量。
2024-07-08 22:02:37
1450
原创 HC-05蓝牙模块
引脚多的时候的定义//使用枚举来表示状态//枚举HC05_COUNT//由于本次实验需要四个引脚,所以用数组;不然得四个引脚//缓冲区总的长度//接受AT指令的缓冲区也可以这样定义://类似于哈希映射HC05_COUNT这段代码定义了一个枚举类型`HC05Pin_t`,用于清晰、安全地表示与HC05蓝牙模块相关的引脚。枚举(enumeration)是一种整型数据类型,它可以有几个预定义的命名整数常量。
2024-07-08 21:59:40
1353
原创 6位移位寄存器vhdl代码
当CLK上升沿到来时,信号传到输出端需要一定的传输延迟时间,此时FF0输出端无变化,后边其余触发器将按照原始状态跟随。如果将4位并行数据置入移位寄存器4个触发器中,然后连续加入4个移位脉冲,则移位寄存器中的4位代码将从串行输出端串行输出。它们由触发器组成,这些触发器的连接方式使得一个触发器的输出可以作为另一个触发器的输入。移位寄存器基本上是一种能够传输(“移位”)数据的寄存器。当前的次态是下次串行输入的现态,加一个脉冲,串行输入的结果右移一次。四个脉冲结束后,串行输入的结果,转化为并行输出/串行输出结果。
2023-10-16 16:21:13
937
1
原创 差分方程求解
分别输入三个不同的序列x1(n) , x2(n)和x(n)=4x1(n)-3x2(n) ,并计算对于输入x1(n),x2(n)和x(n)的输出y1(n),y2(n)和y(n),判断该系统是否为线性系统。题目:用Matlab仿真。
2023-10-10 20:19:25
940
1
原创 通讯管理系统 cpp
2、判断返回值对应的信息是否与所求信息相同,并且调用显示函数中对各个信息显示部分,但数组的下标是当前return返回的结果。1、检测函数:判断是否存在,存在,返回通讯录的位置,删除;1、查找函数:判断是否存在,存在,返回通讯录的位置,删除;1、检测函数:判断是否存在,存在,返回通讯录的位置,删除;设计通讯录的结构体:上限1000,存放联系人数组,记录当前已有的联系人的个数。设计联系人结构体:姓名,年龄,性别,联系电话(要用字符串表示),家庭住址。上限为1000,添加姓名,联系电话,年龄,性别,家庭住址。
2023-09-05 16:41:42
327
1
原创 c++内容
1.C++与C语言的区别与联系区别:(1)面向不同:c++是面向对象程序设计思想和泛型编程的特性, 而C语言面向过程的程序设计(2)关键字数量不同:c++有63个关键字,C语言有32个关键字(3)文件后缀名不同:c++文件后缀名为.cpp,C语言文件后缀名为.c联系:c++继承了C语言的简洁、高效,还进行了扩充;c++的语法结构与C语言基本一致。2.相关概念面向对象:强调软件开发对关键性语句的描述、定义与操作。
2023-04-19 18:23:28
76
2
空空如也
布尔类型的相关提问,如何解决?
2023-04-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人