查看完整版本: 如果ProgIsp3.0添加自定义芯片之算法编写及转换

zhifeng 发表于 2022-8-11 17:40:52

如果ProgIsp3.0添加自定义芯片之算法编写及转换

定义 设备

struct FlashDevice const FlashDevice={
   FLASH_DRV_VERS,             // Driver Version, do not modify!
   "New Device 256kB Flash",   // Device Name
   ONCHIP,                     // Device Type
   0x00000000,               // Device Start Address
   0x00040000,               // Device Size in Bytes (256kB)
   1024,                     // Programming Page Size
   0,                        // Reserved, must be 0
   0xFF,                     // Initial Content of Erased Memory
   100,                        // Program Page Timeout 100 mSec
   3000,                     // Erase Sector Timeout 3000 mSec
// Specify Size and Address of Sectors
   0x002000, 0x000000,         // Sector Size8kB (8 Sectors)
   0x010000, 0x010000,         // Sector Size 64kB (2 Sectors)
   0x002000, 0x030000,         // Sector Size8kB (8 Sectors)
   SECTOR_END
};

根据芯片手册编写对应代码

/*
*Initialize Flash Programming Functions
*    Parameter:      adr:Device Base Address
*                  clk:Clock Frequency (Hz)
*                  fnc:Function Code (1 - Erase, 2 - Program, 3 - Verify)
*    Return Value:   0 - OK,1 - Failed
*/
int Init (unsigned long adr, unsigned long clk, unsigned long fnc) {
/* Add your Code */
return (0);                                  // Finished without Errors
}

/*
*De-Initialize Flash Programming Functions
*    Parameter:      fnc:Function Code (1 - Erase, 2 - Program, 3 - Verify)
*    Return Value:   0 - OK,1 - Failed
*/
int UnInit (unsigned long fnc) {
/* Add your Code */
return (0);                                  // Finished without Errors
}

/*
*Erase complete Flash Memory
*    Return Value:   0 - OK,1 - Failed
*/
int EraseChip (void) {
/* Add your Code */
return (0);                                  // Finished without Errors
}

/*
*Erase Sector in Flash Memory
*    Parameter:      adr:Sector Address
*    Return Value:   0 - OK,1 - Failed
*/
int EraseSector (unsigned long adr) {
/* Add your Code */
return (0);                                  // Finished without Errors
}

/*
*Program Page in Flash Memory
*    Parameter:      adr:Page Start Address
*                  sz:   Page Size
*                  buf:Page Data
*    Return Value:   0 - OK,1 - Failed
*/
int ProgramPage (unsigned long adr, unsigned long sz, unsigned char *buf) {
/* Add your Code */
return (0);                                  // Finished without Errors
}


工程模板

zhifeng 发表于 2022-8-11 17:42:19

用keil 编译出结果 产生 xxxx.FLM

用软件包中的工具flmTobin转换为 progisp 的算法文件。 挂接到progisp 中就可以支持改芯片。

具体的 progisp 如果添加芯片,我录有头条视频 ,可以自行观看。



zyh555 发表于 2022-8-12 17:13:37

感谢楼主分享,回头试一试!

zydl123 发表于 2022-9-2 12:17:52

注册了两个号?

日升日落 发表于 2022-9-18 16:56:58

楼主,ProgIsp3.0哪里下载?

高升cgs 发表于 2023-2-6 23:20:25


谢谢了,先看看再说!

lzz8031 发表于 2023-4-1 20:16:35

谢谢分享!对设计编程器有帮助。

lzz8031 发表于 2023-4-2 11:01:48


感谢楼主分享,回头试一试!

lzz8031 发表于 2023-4-4 01:53:40

下载看看监控程序。下载了。有时间做一套试试。

lzz8031 发表于 2023-4-4 01:58:19


闲着无聊,这几天也做一个玩玩
页: [1] 2
查看完整版本: 如果ProgIsp3.0添加自定义芯片之算法编写及转换