c语言空指针在stm32中的表现

访问空指针

uint32_t * ptr = NULL;
*ptr = 5;
空指针指向0地址,0地址在cotex-m系列单片机中(由于BOOT配置方式),多数被映射到0x8000000,即代码起始地址。
根据权威指南描述,访问这部分地址是允许的,且不会造成异常。
根据数据手册描述,如果没配置好flash的操作,就直接写这部分地址,就会报PGPERR和PGSERR错误。
调试结果也是这样,目前来看这两个异常不会触发hardfault之类的异常,但是如果没清除这些错误标志又操作flash,在stm32中会写不了数据。
比如GD32的flash库函数,就不会对这些错误异常标志位清0,需要编写代码时主动清0。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32C语言指针的作用非常重要,它可以用于访问和操作内存的数据,以及与外设进行交互。下面是一些指针在STM32的常见用途: 1. 内存分配和管理:指针可以用于动态内存分配,例如使用`malloc()`函数分配内存空间。此外,指针还可以用于管理和操作静态分配的内存,例如数组和结构体。 2. 访问外设寄存器:STM32微控制器通常包含多个外设(如GPIO、USART、SPI等),这些外设通过寄存器进行配置和操作。通过使用指针,可以将指针指向特定的寄存器地址,并直接读取或写入寄存器的值,以与外设进行交互。 3. 传递参数和返回值:指针可以用于传递参数和返回值。通过传递指针作为函数参数,可以在函数内部修改指针所指向的数据。这对于需要修改外部变量或返回多个值的函数非常有用。 4. 数据结构和链表:指针在实现数据结构和链表时非常有用。通过使用指针,可以在堆上动态分配内存,并使用指针链接不同的节点,从而创建复杂的数据结构。 5. DMA传输:STM32具有直接内存访问(DMA)控制器,用于高效地进行数据传输。指针可以用于指定源和目的地的内存地址,以便DMA控制器可以在外设和内存之间进行快速的数据传输。 总而言之,指针在STM32广泛用于内存访问、外设操作、数据结构和DMA传输等各种场景。熟练使用指针可以提高代码的灵活性和效率,并充分发挥STM32微控制器的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值