⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fwflash.c

📁 e1c0df5d-c8bc-48a5-bc02-a2b7c51c0dbf是做mp3的源代码
💻 C
字号:
#include "fwflash.h"/******************************************************** this routine performs a firmware update.* data structure is as following:** artalb[0]: sectors per cluster* artalb[2]: # of clusters in file* artalb[2-5]: (ulong) start of data (lba encoding)* artalb[6-x]: (uint) cluster containing firmware.bin********************************************************/void flash_firmware(void){	register unsigned int i;	register unsigned char sec;	unsigned long flashed, ccl;	unsigned int baddr, pcl, cl;	cl = artalb[0] | artalb[1] << 8;	sec = 0; pcl = 0;	for (flashed = 0; flashed < 0x3b00;)	{		ccl = 0;		for (i = 0; i < secpercluster;i++)		{			ccl += cl;		}		while (CFReadSector((unsigned long) data + (unsigned long) ccl + sec));				for (i=0; i<4; i++)		{			boot_page_erase((unsigned long) flashed);						for (baddr = 0; baddr < 128; baddr+=2)			{				boot_page_fill(baddr, secbuf[(i*128)+baddr] | secbuf[(i*128)+baddr+1] << 8);			}			boot_page_write((unsigned long) flashed);			while (boot_rww_busy())			{				boot_rww_enable();			}			flashed += 128;		}				sec++;		if (sec == secpercluster)		{			sec = 0;			pcl += 2;			cl = artalb[pcl] | (unsigned int) artalb[pcl+1] << 8;		}	}	wdt_enable(1);			// re-enable watchdog	while (1);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -