共2条
1/1 1 跳转至页
FLASH 各位大侠,下面关于FLASH编程的论述对吗?
问
在一片文章中看到如下论述:
Flash 的可自编程性Self-Programmability 是指用
Flash 存储器中的驻留软件或程序对Flash 存储器进行擦
除/ 编程但是要求运行程序代码的存储区与待编程
的存储区不在同一模块中因此只有一个片上Flash 存
储器模块的微处理器是不能在进行擦除/ 编程Flash 操
作的同时执行程序的。
可其他文章中又说只有正在执行擦除/ 编程的扇区(块)不可由CPU访问,也就是说其他扇区中的程序还是可以执行的吗?
请教,到底在擦除/ 编程FLASH时是整个FLASH无法访问还是单个扇区??谢谢! 答 1: 没人能帮我吗?呜呜呜 答 2: Flash在擦写时不能访问,这也是IAP是要关闭中断的原因。 答 3: 那么2104不能实现利用存在于FLASH中的程序来向FLASH中写数据了zlgARM你好,我是想利用lpc2104控制一个GPRS模块来制作一个无线数据传输终端,其中我想给该终端实现空中软件升级功能,即由远程服务器通过GPRS模块将代码下载到2104中,其中2104的UART1于GPRS模块连接,UART0与数据采集系统连接。我的思路是:在2104中运行一个程序(固化在FLASH中)正常情况下它将UART0接收到的数据通过UART1发出。当从UART1接收到某特殊字符如【PROMOTE】时则将此后UART1接收到的数据写入FLASH中的预定地址(此时的UART1接收的为欲升级的代码)。
现在的问题是当程序将UART1接收到的数据写入FLASH时,无法再从UART1继续接收数据(因为此时FLASH不可访问),则远程服务器发送的代码丢失,无法完成空中软件升级。请教,可以用什么方法实现空中软件升级功能? 答 4: 个人看法我觉得可以在Flash的高扇区留一个扇区,专门存放升级用的程序。当正常程序接收到升级指令后,执行升级代码。
升级程序从串口不断接收数据包,每个数据包含512字节的程序代码和该代码在Flash中的存储地址(必须使用严格的算法对数据包检错)。然后根据数据包的信息,将该数据包中的代码数据写入Flash的指定位置。如果中途数据包出错,升级程序将自动申请重发。
我觉得在升级过程中,中断向量表非常重要,最好第一扇区不要升级,或者在擦除后马上恢复。否则如果在升级过程中系统意外复位,可能导致没有有效用户代码可以执行。
答 5: 请问yanhan在升级过程中升级程序是在FLASH中运行还是在RAM中?升级程序可以在FLASH中运行吗?
Flash 的可自编程性Self-Programmability 是指用
Flash 存储器中的驻留软件或程序对Flash 存储器进行擦
除/ 编程但是要求运行程序代码的存储区与待编程
的存储区不在同一模块中因此只有一个片上Flash 存
储器模块的微处理器是不能在进行擦除/ 编程Flash 操
作的同时执行程序的。
可其他文章中又说只有正在执行擦除/ 编程的扇区(块)不可由CPU访问,也就是说其他扇区中的程序还是可以执行的吗?
请教,到底在擦除/ 编程FLASH时是整个FLASH无法访问还是单个扇区??谢谢! 答 1: 没人能帮我吗?呜呜呜 答 2: Flash在擦写时不能访问,这也是IAP是要关闭中断的原因。 答 3: 那么2104不能实现利用存在于FLASH中的程序来向FLASH中写数据了zlgARM你好,我是想利用lpc2104控制一个GPRS模块来制作一个无线数据传输终端,其中我想给该终端实现空中软件升级功能,即由远程服务器通过GPRS模块将代码下载到2104中,其中2104的UART1于GPRS模块连接,UART0与数据采集系统连接。我的思路是:在2104中运行一个程序(固化在FLASH中)正常情况下它将UART0接收到的数据通过UART1发出。当从UART1接收到某特殊字符如【PROMOTE】时则将此后UART1接收到的数据写入FLASH中的预定地址(此时的UART1接收的为欲升级的代码)。
现在的问题是当程序将UART1接收到的数据写入FLASH时,无法再从UART1继续接收数据(因为此时FLASH不可访问),则远程服务器发送的代码丢失,无法完成空中软件升级。请教,可以用什么方法实现空中软件升级功能? 答 4: 个人看法我觉得可以在Flash的高扇区留一个扇区,专门存放升级用的程序。当正常程序接收到升级指令后,执行升级代码。
升级程序从串口不断接收数据包,每个数据包含512字节的程序代码和该代码在Flash中的存储地址(必须使用严格的算法对数据包检错)。然后根据数据包的信息,将该数据包中的代码数据写入Flash的指定位置。如果中途数据包出错,升级程序将自动申请重发。
我觉得在升级过程中,中断向量表非常重要,最好第一扇区不要升级,或者在擦除后马上恢复。否则如果在升级过程中系统意外复位,可能导致没有有效用户代码可以执行。
答 5: 请问yanhan在升级过程中升级程序是在FLASH中运行还是在RAM中?升级程序可以在FLASH中运行吗?
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【笔记】生成报错synthdesignERROR被打赏50分 | |
【STM32H7S78-DK评测】LTDC+DMA2D驱动RGBLCD屏幕被打赏50分 | |
【STM32H7S78-DK评测】Coremark基准测试被打赏50分 | |
【STM32H7S78-DK评测】浮点数计算性能测试被打赏50分 | |
【STM32H7S78-DK评测】Execute in place(XIP)模式学习笔记被打赏50分 | |
每周了解几个硬件知识+buckboost电路(五)被打赏10分 | |
【换取逻辑分析仪】RA8 PMU 模块功能寄存器功能说明被打赏20分 | |
野火启明6M5适配SPI被打赏20分 | |
NUCLEO-U083RC学习历程2-串口输出测试被打赏20分 | |
【笔记】STM32CUBEIDE的Noruletomaketarget编译问题被打赏50分 |