#include <stdio.h>
#include <stdint.h>
#define BASE_ADDRESS 0x80000000
#define FLASH_SIZE 0x1000000
volatile uint16_t *nor_flash = (volatile uint16_t *)BASE_ADDRESS;
void nor_flash_write_word(uint32_t address, uint16_t data) {
nor_flash[address >> 1] = data;
}
uint16_t nor_flash_read_word(uint32_t address) {
return nor_flash[address >> 1];
}
void nor_flash_erase_sector(uint32_t address) {
nor_flash[address >> 1] = 0x30;
nor_flash[address >> 1] = 0xD0;
}
int main() {
uint32_t address = BASE_ADDRESS;
uint16_t data = 0xABCD;
// 写入数据到 NOR Flash
nor_flash_write_word(address, data);
printf("Data 0x%04X written to address 0x%08X\n", data, address);
// 从 NOR Flash 读取数据
uint16_t read_data = nor_flash_read_word(address);
printf("Data read from address 0x%08X: 0x%04X\n", address, read_data);
// 擦除扇区
nor_flash_erase_s
S3C2440 NOR Flash编程指南
最新推荐文章于 2024-06-05 21:18:15 发布