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

📄 flash.txt

📁 本代码通过串口通信的应用熟悉Tornado的集成开发环境
💻 TXT
字号:
void Flash_Init(void);										/*FLASH初始化*/
void Flash_GetID( UHWORD *in_data_p );						/*ID读取*/
bool Flash_Erase( UWORD in_sa_base );						/*FLASH擦除*/
bool Flash_Program( UWORD in_base, UHWORD in_data );		/*FLASH编程*/

void Flash_Init(void)
{
	pimm->memc_br0 = 0x02800801;	/*flash base: 0x02800000, no pare, 16 bit, no write protect*/
}

void Flash_GetID( UHWORD *in_data_p )
{
	*MCU_FLASH_ADDR( 0x555 ) = 0xAA;	
	*MCU_FLASH_ADDR( 0x2aa ) = 0x55;
	*MCU_FLASH_ADDR( 0x555 ) = 0x90;

	in_data_p[0] = *MCU_FLASH_ADDR( 0x100 );
	in_data_p[1] = *MCU_FLASH_ADDR( 0x101 );		
	in_data_p[2] = *MCU_FLASH_ADDR( 0x102 );
}

bool Flash_Erase( UWORD in_sa_base )
{
	*MCU_FLASH_ADDR( 0x555 ) = 0xAA;
	*MCU_FLASH_ADDR( 0x2aa ) = 0x55;	
	*MCU_FLASH_ADDR( 0x555 ) = 0x80;
	*MCU_FLASH_ADDR( 0x555 ) = 0xAA;
	*MCU_FLASH_ADDR( 0x2aa ) = 0x55;
	*MCU_FLASH_ADDR( in_sa_base ) = 0x30;

	for(int i=0;i<SA_NUM;i++)
	{
		while( *MCU_FLASH_ADDR( in_sa_base + i ) != 0xFFFF );
	}

	return 1;
}

bool Flash_Program( UWORD in_base, UHWORD in_data )
{
	*MCU_FLASH_ADDR( 0x555 ) = 0xAA;	
	*MCU_FLASH_ADDR( 0x2aa ) = 0x55;
	*MCU_FLASH_ADDR( 0x555 ) = 0xA0;
	*MCU_FLASH_ADDR( in_base ) = in_data;

	while( (*MCU_FLASH_ADDR( in_base ) & 0x0080) == 0 );

	return 1;
}

⌨️ 快捷键说明

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