DIY编程器网

标题: 如果ProgIsp3.0添加自定义芯片之算法编写及转换 [打印本页]

作者: zhifeng    时间: 2022-8-11 17:40
标题: 如果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 Size  8kB (8 Sectors)
   0x010000, 0x010000,         // Sector Size 64kB (2 Sectors)
   0x002000, 0x030000,         // Sector Size  8kB (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
}


工程模板
_Template_Flash.rar (30.12 KB, 下载次数: 4)

作者: zhifeng    时间: 2022-8-11 17:42
用keil 编译出结果 产生 xxxx.FLM

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

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




作者: zyh555    时间: 2022-8-12 17:13
感谢楼主分享,回头试一试!
作者: zydl123    时间: 2022-9-2 12:17
注册了两个号?

1q.JPG (20.79 KB, 下载次数: 55)

1q.JPG

1qq.JPG (26.35 KB, 下载次数: 60)

1qq.JPG

作者: 日升日落    时间: 2022-9-18 16:56
楼主,ProgIsp3.0哪里下载?
作者: 高升cgs    时间: 2023-2-6 23:20

谢谢了,先看看再说!
作者: lzz8031    时间: 2023-4-1 20:16
谢谢分享!对设计编程器有帮助。
作者: lzz8031    时间: 2023-4-2 11:01

感谢楼主分享,回头试一试!
作者: lzz8031    时间: 2023-4-4 01:53
下载看看监控程序。下载了。有时间做一套试试。
作者: lzz8031    时间: 2023-4-4 01:58

闲着无聊,这几天也做一个玩玩
作者: lzz8031    时间: 2023-4-4 02:00

恭喜,付出总算有收获
上点成品图解馋
作者: lzz8031    时间: 2023-4-4 02:07
希尔特的这个不对吧,VCP用的是继电器控制,
作者: lzz8031    时间: 2023-4-4 02:09
48个引脚岂不要48个继电器,设计就太失败了。
作者: duckyer    时间: 2023-6-10 13:08
功能太强大了,完全可以作为mcu的通用编程器。




欢迎光临 DIY编程器网 (http://diybcq.com/) Powered by Discuz! X3.2