|
查了好久都没搞定, 求Trend_data[3][0]存入flash中的地址是多少?谢谢!
(用0x00070000+n的方式)
//uint16_t Trend_data[5][1024];
ptr01 = &Trend_data[0][0];
//ucSec1 启始扇区
//ucSec2 结束扇区
//Iadd1 启始地址
//Iadd2 结束地址
//Inum 复制字节个数,为512/1024/4096/8192
Write_flash_01(28, 28,0x00070000,ptr01,1024);
//ucSec1 启始扇区
//ucSec2 结束扇区
//Iadd1 启始地址
//Iadd2 结束地址
//Inum 复制字节个数,为512/1024/4096/8192
void Write_flash_01(uint8_t ucSec1, uint8_t ucSec2,uint32_t Iadd1,uint16_t *Iadd2,uint32_t Inum)
{
uint32_t i1,i2;
extern uint16_t tr_span;
i2= tr_span<<16;
for (i1 = 0; i1 < Inum; i1++)
{
if (i1>0)
i2=0;
Me_Msg [i1]=Trend_data[0][i1]+i2;
}
IAP_Entry = (void(*)())IAP_ENTER_ADR; // 初始化函数指针IAP_Entry
__disable_irq(); // 在IAP操作前必须关闭所有中断
parIdRead(); // 读器件ID
codeIdBoot(); // 读Boot版本号
Mcu_ID= parIdserial();
sectorPrepare(ucSec1,ucSec2); // 准备扇区29
sectorErase(ucSec1,ucSec2); // 擦除扇区29
blankChk(ucSec1,ucSec2) ; // 查空扇区29
//
sectorPrepare(ucSec1,ucSec2); // 选择扇区29
flash_code=ramCopy(Iadd1 , (uint32_t)Me_Msg, 4*Inum); // 写数据到扇区1 复制字节个数,为512/1024/4096/8192
__enable_irq();
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!
|