logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

烧录程序时ESP32-cam接线问题。

当电源,rxd,txd,gnd都正确连接上时,ioo与旁边的gnd也相连,一切都准备就绪,为什么不成功呢?使用usb转ttl进行烧录时,接线后烧录失败,并且出现下面的字样。在芯片上有gnd,但还有一个gnd/r的引脚,原因就在这里。

#单片机#嵌入式硬件
关于FREERTOS的任务切换

将入栈后的最终 PSP(0x20002EC0)写入任务A的 TCB,作为 “下次切换回 B 的锚点”:→ 任务 A 的 TCB->pxTopOfStack = 0x20002EC0(仅切换出时更新,切换入时只读)。(“保存寄存器” 的区域(硬件 + 手动压栈的 16 个寄存器)只是任务A栈里的一部分,任务 A 的栈里还有局部变量、函数调用的返回地址 / 参数、嵌套函数的栈帧等动态内容)任务A的 P

#嵌入式#嵌入式硬件#stm32 +1
堆栈的理解

栈(Stack):按后进先出规则使用的内存区域,由 CPU 的栈指针(SP/PSP)自动管理,用于存储函数调用帧、局部变量、任务上下文。:是 main 函数 / 中断服务程序使用的栈,由编译器 / 启动文件分配,物理上独立于 FreeRTOS 的堆,是硬件栈指针(MSP)指向的区域。栈和堆是两种不同的内存管理逻辑,是同一块物理 RAM 的不同使用 / 管理规则,而非硬件层面割裂的两块内存。:是 F

#单片机#嵌入式硬件#嵌入式 +2
关于FreeRTOS任务运行时间统计函数vTaskGetRunTimeStats( char * pcWriteBuffer )使用时出现的问题

然后portCONFIGURE_TIMER_FOR_RUN_TIME_STATS()只是 FreeRTOS 定义的宏名,它本质是 FreeRTOS 内核里的一个预定义宏占位符,没有任何可执行代码,也不是函数(不能被修改、不能直接写逻辑),,只是一个起到一个标签的作用,真正实现功能的函数是:ConfigureTimerForRunTimeStats()。FreeRTOS 把portGET_RUN_T

#单片机#stm32#嵌入式硬件 +1
在FreeRTOS中使用portDISABLE_INTERRUPTS()关闭中断无效

寄存器配置,每个中断占 8 位,但仅高 4 位(bit4~bit7)有效(低 4 位保留,写 0),优先级数值的换算规则是:原始寄存器值 = 优先级数值 × 16 (因为每级优先级占16个原始值)。所以,当设置定时器的中断优先级为6时并不能被portDISABLE_INTERRUPTS()关闭,因为此时的FreeRTOS管理的中断是11-15。它决定了FreeRTOS 系统调用能屏蔽的中断优先级阈

#单片机#嵌入式硬件
到底了