- 博客(87)
- 资源 (2)
- 收藏
- 关注
原创 FreeRTOS的启动流程
②、创建定时器服务任务;2、在main函数中,对硬件设备、系统进行初始化,再创建任务(①、创建所有任务,②、创建启动任务),启动任务调度器,任务调度器为FreeRTOS实时操作系统的核心,主要负责任务切换(通过分析各任务的优先级)。4、使用调度函数xPortStartScheduler()来初始化跟调度器启动相关的硬件,如:设置PendSV的中断优先级,为最低优先级;在main函数中将硬件初始化、RTOS系统初始化,创建所有的任务,再启动RTOS调度器(调度器会根据任务的优先级进行选择)开始多任务调度。
2023-06-01 22:23:47 743
原创 进程状态转换
/如果传None获取当前进程的进程组id,如果传进程号获取进程号的进程组ID。//获取当前进程的父进程号。任何进程除了init进程外,每个进程都有父进程PPID。
2022-09-08 18:56:18 213
原创 进程概述
并发:同一时刻,只能有一条指令执行,但多个进程指令被快速轮换执行,宏观上同时执行,微观上并不是同时执行,只是把时间片分成若干段,使多个进程快速交替的执行。进程控制块PCB:为了管理进程,内核必须对每个进程所作的事情进行清楚的描述。Linux的进程控制块是task_struct结构体。并行:同一时刻,有多条指令在多个处理器上同时执行。在终端输入ulimit -a可以查看资源上限。进程id、状态、可使用资源的上限;切换时要保存和恢复的CPU寄存器;用户id、组id、会话和进程组。终端信息、信号相关信息;
2022-09-05 20:59:15 175
原创 文件IO
使用fopen打开hello.txt文件,返回FILE *fp文件指针,指向一个结构体,文件描述符(文件句柄)(整数值)索引到你打开的文件,文件读写指针位置是用来读写数据,IO缓冲区(内存地址)找到对应的内存块,再将数据从内存刷新到磁盘。由于这 9 个字符分属 3 类用户,因此每种用户身份包含 3 个权限(r、w、x),通过将 3 个权限对应的数字累加,最终得到的值即可作为每种用户所具有的权限。chmod命令使用数字修改文件权限。解决程序加载问题和调用栈堆这些。dup、dup2 函数。
2022-09-04 21:19:03 246
原创 ?Makefile
Makefile定义了一系列规则,通过make执行——>自动化编译,类似shell脚本。一个 Makefile 文件中可以有一个或者多个规则。
2022-09-04 03:43:22 87
原创 C++11新特性(一)
定义迭代器 i 的时候,类型书写比较冗长,容易出错。然而有了 auto 类型推导,我们大可不必这样,只写一个 auto 即可。
2022-09-03 15:46:59 616
原创 GCC
编译不汇编-S生成.s文件,编译汇编-c:语法检查生成.o文件;【注】声明作用在编译阶段,定义(装在链接库里)作用在链接阶段。预处理-E:宏替换、删除注释、头文件拷贝生成.i文件;gcc 和 g++都是GNU(组织)的一个编译器。链接整合定义生成可执行程序.out文件。预处理–>编译–>汇编–>链接。
2022-09-03 02:52:58 139
原创 C++收缩转换
VS2019提示报错 表示unsigned_int64转换到_int64,需收缩转换,这需在long long前加unsigned类型转换 变量类型和初始化的值不一致要么进行强制类型转换 或者初始化的值为一致这只需将bool{100}改为bool(100)...
2022-03-17 21:54:13 4440 1
原创 ++a a++汇编是如何执行的?
c = b - a++;00007FF7565018F0 mov eax,dword ptr [a] 00007FF7565018F3 mov ecx,dword ptr [b] 00007FF7565018F6 sub ecx,eax 00007FF7565018F8 mov eax,ecx 00007FF7565018FA mov dword ptr [c],eax 00007FF75650
2022-02-16 00:00:01 227
原创 Keil 启动文件详解
1. 启动文件详解1.1 启动文件的主要任务启动文件会完成以下五件事:初始化堆栈指针 SP=__initial_sp初始化PC指针 PC=Reset_Handler初始化中断向量表配置系统时钟调用C库函数__main()初始化用户堆栈,从而最终调用main函数1.2 启动文件中的汇编指令1.3 启动代码讲解1.3.1 栈的初始化先进行栈的初始化,先定义Stack_Size 的大小为0x00000400(1024bit),不初始化,可读可写,8字节对齐,分配内存空间。栈的作用用于
2022-01-16 22:39:13 1805
原创 IIC通信总结
IIC概述IIC:是两线串行总线,它是由时钟线SCL和数据线SDA构成,可以进行发送和接受数据。高速IIC总线一般可以达到400kbs以上。是半双工通信。IIC可以分为软件IIC和硬件IIC软件IIC:软件IIC是指通过单片机两个IO口模拟IIC,通过软件控制引脚高低电平模拟IIC时序。硬件IIC:是通过硬件IIC的芯片,直接硬件调用内部寄存器。IIC通信协议IIC通信由开始、结束、发送、响应、接受组成。当IIC是高电平时,SDA不允许变化,当SCL为低电平时,SDA可以任意0、1变化。空
2022-01-07 00:10:29 2760
原创 什么是过零检测?
什么是过零检测功能所谓过零检测就是指在交流回路中,当波形由正半周向负半周转换或者由负半周向正半周转换时,经过零位,系统要检测到这个零位。可控硅过零检测是指,系统检测到零位时,要让可控硅在零位或者零位附近时触点导通或者断开。可以设计过零检测电路来实现功能,也可以使用带有过零检测功能的光耦来实现。可控硅做过零检测的意义前文说过,可控硅的过零检测就是让可控硅在零位附近导通或者关断,即在零位附近的时候要让用户负载快速接入回路或者从回路中断开。我们知道,在电流很大的时候,导通回路或者切断回路会对负载和电源造成很
2021-11-11 00:54:46 7427
原创 IO口输入输出各个模式
以STM32的芯片为例:STM32芯片的IO有8中模式:(1)GPIO_Mode_AIN 模拟输入(2)GPIO_Mode_IN_FLOATING 浮空输入(3)GPIO_Mode_IPD 下拉输入(4)GPIO_Mode_IPU 上拉输入(5)GPIO_Mode_Out_OD 开漏输出(6)GPIO_Mode_Out_PP 推挽输出(7)GPIO_Mode_AF_OD 复用开漏输出(8)GPIO_Mode_AF_PP 复用推挽输出四种输入模式 + 四种输出模式1.GPIO_Mode_
2021-11-08 00:07:37 7173
原创 2021/11/3随手笔记
移植海尔芯片到无锡中微芯片,通过对数据手册阅读,编写底层程序,出现问题点:1,定时器移植出现问题,定时不准,有可能是中断优先级的问题2,PWM输出出现问题,pwm输出控制不了电机,对配置存在问题...
2021-11-03 00:10:00 52
原创 个人硬件基础总结
一、电阻1、选型依据阻值:电阻值;封装:常用封装0201,0402,0603,0805,1206,1812等;功耗:1/16W,1/10W,1/8W,1/4W,1/2W,1W,2W,3W等;精度:1%,5%等。电阻封装一览选择电阻时,6个经常被忽略的冷门参数2、选型方法①、优先考虑阻值,对于不常见的阻值,可以通过电阻的串联与并联代替;②、计算功耗: P = I²R 或 U²/R, 根据功耗,合理选择封装,一般0402的最大功耗为1/16W,0603的最大功耗为1/10W,0805的最大功
2021-11-02 23:49:19 160
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人