自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Bootloader

对于APP,设置为flash基址+偏移量,即0X08005000,所以需要在APP的main函数最开头处添加SCB->VTOR = APP_ADDRESS,实现中断向量表的起始地址的重设。if(((*(__IO uint32_t *)APP_ADDRESS) & 0x2FFE0000) == 0x20000000) //判断栈顶指针内容是否有效(指向RAM)第一句: if(((*(__IO uint32_t *)APP_ADDRESS) & 0x2FFE0000) == 0x20000000)

2024-05-06 14:42:39 1178

原创 keil的Stack_Size与Heap_Size

作用:用来存放函数的形参、函数内定义的局部变量,还有一些实时操作系统的现场保护、返回地址都是存储在栈里面。作用:存放malloc()动态分配的内存。作用:存储全局变量和静态变量。作用:存储函数体二进制代码。

2024-04-29 21:46:16 384

原创 程序偶尔进HardFault_Handler

1.可以先看下报错的地址的代码定位到哪里 hardfault可能的原因空指针引用:检查是否存在空指针引用,即使用了未初始化或已释放的指针。3.内存访问错误:检查是否存在非法的内存访问,比如访问未映射的地址或越界访问数组等。可以通过使用内存保护机制和合理的内存管理来避免。2.栈溢出:检查是否使用了过多的栈空间,导致栈溢出。可以通过增加栈大小或优化代码来解决。4. 中断服务函数错误 时钟配置错误 中断冲突。

2024-04-18 10:19:33 123 1

原创 回调函数的定义

回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。函数指针也是一种指针,只是它指向的不是整型,字符型而是函数。在C中,每个函数在编译后都是存储在内存中,并且每个函数都有-一个入口地址,根据这个地址,我们便可以访问并使用这个函数。函数指针就是通过指向这个函数的入口,从而调用这个函数。

2023-07-10 15:02:31 29 1

原创 C2000 DSP中全局变量清零问题

一个实际的例子是:假设使用了看门狗,在某些情况下系统看门狗复位了,对于某些控制系统而言,这时是要求系统在最短的时间内恢复之前的工作状态的。因为此时并没有对全局变量进行清零,之前的全局变量数据全部都在,此时就可以很快的恢复之前的工作状态,并且还可以使用一些全局变量辅助判断之前的错误复位的原因。由此可见,是否对全局变量进行清零完全是由启动代码和库函数决定的,而TI的编译器就没有链接完成这一工作所需的库函数,自然也就无法完成全局变量自动清零的工作了。段显然应该是在RAM中的,这就有一个问题,RAM中的。

2023-07-06 11:37:36 652 1

空空如也

空空如也

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

TA关注的人

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