Tag: flash memory

如何在STM32F4,Cortex M4上写入/读取FLASH

我想写一个变量,例如一个数字为5的整数到FLASH,然后在电源消失后再次打开设备读取它。 我已经知道为了写一些东西,我首先需要擦除页面然后再写。 在手册中它说: 在Flash选项密钥寄存器(FLASH_OPTKEYR)中写入OPTKEY1 = 0x0819 2A3B 在Flash选项密钥寄存器(FLASH_OPTKEYR)中写入OPTKEY2 = 0x4C5D 6E7F 我该如何执行此任务? 扇区0的块地址从0x0800 0000到0x0800 3FFF,这是我想写的地方。 这里是手册的链接,第71页: STM32手册

擦除Flash NOR:ioctl(MEMUNLOCK)返回状态?

我正试图用C语言中的Linux MTD驱动程序擦除NOR闪存…… 我对ioctl(MEMUNLOCK)调用的返回状态感到困惑,即使ioctl(MEMERASE)成功后它也会返回错误。 以下代码显示警告消息但有效(即Flash块已被删除): int erase_MTD_Pages(int fd, size_t size, off_t offset) { mtd_info_t mtd_info; erase_info_t ei; ioctl(fd, MEMGETINFO, &mtd_info); ei.length = mtd_info.erasesize; for(ei.start = offset; ei.start < (offset+size); ei.start += mtd_info.erasesize) { if(ioctl(fd, MEMUNLOCK, &ei) < 0) { // logPrintf(FAILURE, "[Flash] Can not unlock MTD (MEMUNLOCK, errno=%d)!\n", errno); // return RETURN_FILE_ERROR; logPrintf(WARNING, "[Flash] Can not […]