自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 ST7796S FSMC 驱动

【代码】ST7796S FSMC 驱动。

2024-07-30 19:36:54 246

原创 CRC16_CCITT

int i;for(i=0;i< 16;i++)i < 8;i++)else。

2024-07-25 18:27:12 215

原创 开发问题记录1

可知,static uint8_t msg_pool [256]数组指针未4字节对齐,发生错误。1、最近在开发的时候遇到一个问题,在执行下面一行代码时,会进入到硬件中断。2、将此行代码单独拿出来分析,可知代码等价于下面。3、由上可知,代码等价于如下。

2024-07-02 19:17:30 218

原创 rtthread 信号量

5、_rt_sem_take 函数,此函数将获取信号量,如果信号量获取不到,则等待指定时间。2、rt_sem_detach 函数,此函数将会分离一个静态的信号量实体。1、rt_sem_init 函数,此函数将会初始化一个静态的信号量实体。6、rt_sem_release 函数,此函数将会释放一个信号量。3、rt_sem_create 函数,创建一个信号量实体。4、rt_sem_delete 函数,删除一个信号量实体。(3)否则,如果等待时间为0,则返回超时错误。(2)如果信号量值大于0,则信号量值减一。

2024-06-28 10:32:11 246

原创 rtthread ipc

2、_ipc_list_suspend 函数,此函数将会挂起一个线程到ipc 对象列表中。4、_ipc_list_resume_all 函数,恢复所有挂起在ipc 对象列表的线程。(4)如果是优先级模式,将其按照优先级进行排序,插入到IPC实体的链表中。1、_ipc_object_init 函数,初始化IPC挂起线程链表。(3)如果是先入先出模式,将线程挂起到IPC实体的链表中。3、rt_thread_resume 函数,恢复一个线程。(1)如果线程不是挂起状态,将其设为挂起态。(2)恢复线程实体。

2024-06-28 09:35:32 159

原创 rtthread 线程

6、rt_thread_sleep 函数,此函数此函数将允许当前线程休眠一段时间。将当前线程状态更改为挂起,当线程计时器达到刻度值时,调度程序将唤醒此线程。4、rt_thread_startup 函数,函数将会启动一个线程并将其放入系统就绪队列。(1)如果线程状态不等于线程初始化状态,将其从调度中移除。5、rt_thread_detach 函数,移除线程。3、_thread_init 函数,线程初始化函数。(4)改变线程状态,将其设为关闭态。(3)将线程从挂起列表中移除。(3)将线程唤醒,开始调度。

2024-06-27 14:27:48 363

原创 rtthread 定时器

11、rt_timer_check函数,此函数将检查计时器列表,如果发生了超时事件,则调用相应的超时函数。2、_timer_list_next_timeout 函数,找到下一个定时器的超时tick。10、rt_timer_control 函数,此函数将会获取或设置定时器的一些选择。12、rt_system_timer_init 函数,系统定时器初始化。8、rt_timer_start 函数, 此函数将会启动定时器。1、_timer_init函数,定时器初始化函数。(3)设置定时器超时函数和其参数。

2024-06-27 11:16:28 414

原创 rtthread 线程调度器

4、rt_schedule_insert_thread函数,此函数将会插入一个线程到系统就绪链表,线程的状态将会被设置为就绪态,线程将会从挂起链表中移除。9、_scheduler_get_highest_priority_thread 函数,调度获取最高优先级线程。(4)如果当前线程是运行态,如果当前线程优先级小于最高就绪优先级,将to_thread 指向当前运行线程。3、rt_schedule 函数,此函数将会执行一次调度,它将会选择最高优先级线程,并立即切换。(3)就绪线程,插入就绪链表。

2024-06-27 09:21:43 1169

原创 strpos 函数

【代码】strpos 函数。

2024-06-26 16:33:41 137

原创 rtthread 对象管理器

对象管理器初始化。

2024-06-24 11:38:31 652

原创 rt_hw_context_switch 函数分析

(1)设置 rt_thread_switch_interrupt_flag 为1。(2)设置rt_interrupt_from_thread。(3)设置rt_interrupt_to_thread。(4)触发PendSV异常。

2024-06-20 10:08:48 222

原创 rtthread PendSV_Handler 函数分析

(6)条件判断,如果处理器支持浮点运算(FPU不是软件模拟的),则执行其中的指令块。(8)条件判断,如果处理器支持浮点运算(FPU不是软件模拟的),则执行其中的指令块。(14)条件判断,如果处理器支持浮点运算(FPU不是软件模拟的),则执行其中的指令块。(12)条件判断,如果处理器支持浮点运算(FPU不是软件模拟的),则执行其中的指令块。(11)条件判断,如果处理器支持浮点运算(FPU不是软件模拟的),则执行其中的指令块。(3)清除rt_thread_switch_interrupt_flag标志位。

2024-06-20 09:35:15 335

原创 rt_hw_context_switch_to 函数分析

(1)、将r0寄存器的值,传送到地址值为rt_interrupt_to_thread的内存中,也就是执行线程的堆栈指针。在这个情况下,通过指令序列清除了 CONTROL.FPCA 标志,可能用于关闭浮点运算的自动上下文保存。(4) 将1,传送到地址值为rt_thread_switch_interrupt_flag。(2)、条件判断,如果处理器支持浮点运算(FPU不是软件模拟的),则执行其中的指令块。(3)将0,传送到地址值为rt_interrupt_from_thread的内存中。(8)开异常,开中断。

2024-06-19 16:47:36 713

原创 rt_object_init 函数分析

此函数将初始化对象并将其添加到对象系统管理中。

2024-06-19 14:17:46 275

原创 rt_system_heap_init 函数分析

else#endifImage$$RW_IRAM1$$ZI$$Limit是一个链接器导出的符号,代表ZI段的结束,也就是程序执行区的RAM结束后的地址,反过来也就是我们执行区的RAM未使用的区域的起始地址。

2024-06-19 13:34:02 341

原创 STM32F407ZGT6 HAL_Init 函数分析

一、Flash 访问控制寄存器(FLASH_ARC)二、应用中断和复位控制寄存器(SCB->AIRCR)三、SysTick 定时器。1、系统配置控制器时钟使能。1、设置中断优先级分组。1、SysTick 配置。2、电源接口时钟使能。

2024-06-19 10:26:45 211

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除