制作步骤:
一、修改链接文件,划分出flash driver所占RAM空间,根据不同情况自行定义。
二、定义结构体,分别存放解锁、擦除和写入函数的函数指针,也可以包含其它参数,存放在划分空间的开始处,便于后续调用。
三、申明和定义解锁、擦除和写入的具体函数内容,并测试能够实现对应功能。特别注意函数中不能有全局变量、函数外的指针等。申明时将函数指向对应空间。
四、将结构体放在指定RAM空间
五、生成bin或hex或S19文件,按照所划分的区域将flash driver部分截取出来,形成单独的flash driver文件。
使用步骤:
一、将原本的函数和结构体删除或注释掉。
二、申明结构体指针,指向存放flash driver空间的首地址,也就是指向了flash driver中的结构体。
三、在刷写时上位机加载flash driver文件,将flash driver写入RAM中。
四、程序内通过结构体调用相关函数,实现解锁、擦除和写入功能。
BLFlash_InfoPtr->flashUnlockFct(blocknum, SupMask, NorMask);
BLFlash_InfoPtr->flashEraseFct(address, 0);
BLFlash_InfoPtr->flashWriteFct(address,data,length);