编程给 SRAM 内存中$0150 开始的连续 100 个字节单元分别赋如下 初值:$01、$02、$03、$04.......$63、$64。
时间: 2023-08-05 09:03:38 浏览: 86
Image$$ARM_LIB_HEAP$$ZI$$Base.docx
以下是实现上述功能的C语言代码:
```c
#include <stdint.h>
#include <stdbool.h>
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/sysctl.h"
#define SRAM_ADDR 0x20001500
#define BYTE_NUM 100
int main(void)
{
uint8_t *sramAddr = (uint8_t *)SRAM_ADDR;
uint8_t i, data = 0x01;
// 初始化系统时钟为80MHz
SysCtlClockSet(SYSCTL_SYSDIV_2_5 | SYSCTL_USE_PLL | SYSCTL_XTAL_16MHZ |
SYSCTL_OSC_MAIN);
// 给SRAM内存中的数据赋初值
for (i = 0; i < BYTE_NUM; i++) {
*sramAddr++ = data++;
}
while (1) {
// 循环等待
}
}
```
在main函数中,我们首先初始化系统时钟为80MHz。然后,声明一个指向SRAM内存的指针变量,并使用for循环给SRAM内存中的数据赋初值,从$01一直递增到$64。最后,我们可以加上一个循环等待的语句,使程序保持运行状态。
需要注意的是,在实际应用中,SRAM内存的起始地址和大小可能会有所不同。因此,需要根据实际情况进行相应的修改。
阅读全文