共2条
1/1 1 跳转至页
5402,FLASH 请教5402烧写FLASH程序的问题
问
Flash-CE#=DS#+A14# FLASH映射到数据空间0x4000~0xffff
Flash-OE#=MSTRB#+R/W#
Flash-WE#=MSTRB#+R/W
以下是CMD文件
MEMORY
{
PAGE 0: VPROG(RWXI): origin = 0x1600, len = 0x500
VECS(RXI): origin = 0x80, len = 0x80
PAGE 1: DATA(RWI): origin = 0x3000, len = 0xf00
}
SECTIONS
{
.text: {} > VPROG PAGE 0
.cinit: {} > VPROG PAGE 0
.pinit {} > VPROG PAGE 0
.vectors {} > VPROG PAGE 0
.stack: {} > DATA PAGE 1
.bss: {} > DATA PAGE 1
.const: {} > DATA PAGE 1
.switch: {} > DATA PAGE 1
.sysmem: {} > DATA PAGE 1
.cio: {} > DATA PAGE 1
.far: {} > DATA PAGE 1
.data: {} > DATA PAGE 1
}
完成对flash擦除操作时,结果是数据空间0x4000~0xffff全部为FFFF,表明擦除已完成。
然后完成对flash的写操作。
for(i=0;i<0x35;i++) //write boot table
{
WriteFlash((0x3000+i),flash_data);
}
查数据空间0x3000~0x3035时发现数据是写进去了。但下面的程序运行时发现数据写不进数据空间0x4000~0x4035,请问为什么?FLASH映射到数据空间0x4000~0xffff,写boot table
也应该写到数据空间0x4000~0xffff,对不?请高手指导一下,谢谢哈。
for(i=0;i<0x35;i++) //write boot table
{
WriteFlash((0x4000+i),flash_data);
}
答 1: 个人见解既然楼主的flash_Ce用的是A14,那么地址线应该是A0--A13(还可能A15--Axx),A0---A13地址空间0---4000H A15---Axxx地址空间8000H---XXXXH,怎么能写入到4000H----8000H的空间地址呢? 因此估计读出来的也是假的.... 答 2: 继续问Flash-CE#=DS#+A14# 改为Flash-CE#=0时,发现还是出现下面问题:
然后完成对flash的写操作。
for(i=0;i<0x35;i++) //write boot table
{
WriteFlash((0x3000+i),flash_data[i]);
}
查数据空间0x3000~0x3035时发现数据是写进去了。但下面的程序运行时发现数据写不进数据空间0x4000~0x4035,这时Flash-CE#=0,请问为什么还写不进去?请高手指导一下,谢谢哈。
for(i=0;i<0x35;i++) //write boot table
{
WriteFlash((0x4000+i),flash_data[i]);
}
答 3: 个人见解A14要与flash的A14硬件连接
Flash-OE#=MSTRB#+R/W#
Flash-WE#=MSTRB#+R/W
以下是CMD文件
MEMORY
{
PAGE 0: VPROG(RWXI): origin = 0x1600, len = 0x500
VECS(RXI): origin = 0x80, len = 0x80
PAGE 1: DATA(RWI): origin = 0x3000, len = 0xf00
}
SECTIONS
{
.text: {} > VPROG PAGE 0
.cinit: {} > VPROG PAGE 0
.pinit {} > VPROG PAGE 0
.vectors {} > VPROG PAGE 0
.stack: {} > DATA PAGE 1
.bss: {} > DATA PAGE 1
.const: {} > DATA PAGE 1
.switch: {} > DATA PAGE 1
.sysmem: {} > DATA PAGE 1
.cio: {} > DATA PAGE 1
.far: {} > DATA PAGE 1
.data: {} > DATA PAGE 1
}
完成对flash擦除操作时,结果是数据空间0x4000~0xffff全部为FFFF,表明擦除已完成。
然后完成对flash的写操作。
for(i=0;i<0x35;i++) //write boot table
{
WriteFlash((0x3000+i),flash_data);
}
查数据空间0x3000~0x3035时发现数据是写进去了。但下面的程序运行时发现数据写不进数据空间0x4000~0x4035,请问为什么?FLASH映射到数据空间0x4000~0xffff,写boot table
也应该写到数据空间0x4000~0xffff,对不?请高手指导一下,谢谢哈。
for(i=0;i<0x35;i++) //write boot table
{
WriteFlash((0x4000+i),flash_data);
}
答 1: 个人见解既然楼主的flash_Ce用的是A14,那么地址线应该是A0--A13(还可能A15--Axx),A0---A13地址空间0---4000H A15---Axxx地址空间8000H---XXXXH,怎么能写入到4000H----8000H的空间地址呢? 因此估计读出来的也是假的.... 答 2: 继续问Flash-CE#=DS#+A14# 改为Flash-CE#=0时,发现还是出现下面问题:
然后完成对flash的写操作。
for(i=0;i<0x35;i++) //write boot table
{
WriteFlash((0x3000+i),flash_data[i]);
}
查数据空间0x3000~0x3035时发现数据是写进去了。但下面的程序运行时发现数据写不进数据空间0x4000~0x4035,这时Flash-CE#=0,请问为什么还写不进去?请高手指导一下,谢谢哈。
for(i=0;i<0x35;i++) //write boot table
{
WriteFlash((0x4000+i),flash_data[i]);
}
答 3: 个人见解A14要与flash的A14硬件连接
共2条
1/1 1 跳转至页
回复
| 有奖活动 | |
|---|---|
| 2026年“我要开发板活动”第三季,开始了! | |
| 硬核工程师专属补给计划——填盲盒 | |
| “我踩过的那些坑”主题活动——第002期 | |
| 【EEPW电子工程师创研计划】技术变现通道已开启~ | |
| 发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
| 【EEPW在线】E起听工程师的声音! | |
| 高校联络员开始招募啦!有惊喜!! | |
| 打赏了!打赏了!打赏了! | |
我要赚赏金打赏帖 |
|
|---|---|
| RTOS怎么选?让我来给你答案!被打赏¥15元 | |
| 【S32K3XX】Flash驱动使用被打赏¥26元 | |
| 【FreeRtos】第一个任务的启动过程被打赏¥21元 | |
| 【分享开发笔记,赚取电动螺丝刀】FPB-RA6E2开发板的WDT功能测试被打赏¥22元 | |
| 关于cmakelist特性presets的使用被打赏¥20元 | |
| 【分享开发笔记,赚取电动螺丝刀】M5STACK系列屏幕质量测试程序,竟然有块亮斑?被打赏¥20元 | |
| 【分享开发笔记,赚取电动螺丝刀】快速搭建瑞萨FPB-RA6E2开发板开发环境被打赏¥14元 | |
| 【分享开发笔记,赚取电动螺丝刀】在音频测试中顺序的调整可改变功效被打赏¥18元 | |
| 【分享开发笔记,赚取电动螺丝刀】点阵显示模块及其应用-----献给新年的小礼物被打赏¥22元 | |
| 基于地奇星开发板的数码管模块显示技术被打赏¥23元 | |
我要赚赏金
