flash新增写入时的是否擦除当前页的判断 防止用户因使用不规范导致flash使用报错
This commit is contained in:
SEEKFREE_BUDING
2023-07-17 15:34:52 +08:00
parent c7397e98a9
commit d33dadb382
80 changed files with 310 additions and 181 deletions

View File

@@ -1,3 +1,5 @@
V3.2.1
flash<73><68><EFBFBD><EFBFBD>д<EFBFBD><D0B4>ʱ<EFBFBD><CAB1><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰҳ<C7B0><D2B3><EFBFBD>ж<EFBFBD> <20><>ֹ<EFBFBD>û<EFBFBD><C3BB><EFBFBD>ʹ<EFBFBD>ò<EFBFBD><C3B2><EFBFBD><E6B7B6><EFBFBD><EFBFBD>flashʹ<68>ñ<EFBFBD><C3B1><EFBFBD>
V3.2.0
<20><><EFBFBD><EFBFBD>wifi spiģ<69><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
<20><><EFBFBD><EFBFBD>detector<6F><72>λ<EFBFBD><CEBB>API<50>ӿ<EFBFBD>

View File

@@ -31,6 +31,8 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* 2023-07-15 pudding д<><D0B4>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD>ֹ<EFBFBD>û<EFBFBD>ʹ<EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
********************************************************************************************************************/
#include "IfxScuWdt.h"
@@ -41,6 +43,7 @@
flash_data_union flash_union_buffer[EEPROM_PAGE_LENGTH]; // FLASH <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD>
static uint8 flash_erase_page_flag; // FLASH <20><><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>־λ <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4> <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> У<><D0A3>FLASHҳ<48>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -86,6 +89,8 @@ void flash_erase_page (uint32 sector_num, uint32 page_num)
IfxScuWdt_setSafetyEndinit (end_init_sfty_pw);
IfxFlash_waitUnbusy(flash, IfxFlash_FlashType_D0);
flash_erase_page_flag = 1;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -131,6 +136,11 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
uint32 data_cont = 0;
end_init_sfty_pw = IfxScuWdt_getSafetyWatchdogPassword();
if(flash_erase_page_flag == 0 && flash_check(sector_num, page_num))
{
flash_erase_page(sector_num, page_num);
}
for(data_cont = 0; data_cont < len; data_cont ++)
{
data_addr = flash_addr + data_cont * FLASH_DATA_SIZE;
@@ -147,6 +157,8 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
IfxFlash_waitUnbusy(0, IfxFlash_FlashType_D0);
}
flash_erase_page_flag = 0;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -182,8 +194,6 @@ uint8 flash_write_page_from_buffer (uint32 sector_num, uint32 page_num)
{
uint32 *data_pointer = (uint32 *)flash_union_buffer;
zf_assert(EEPROM_PAGE_NUM > page_num);
flash_write_page(0, page_num, data_pointer, EEPROM_PAGE_LENGTH);
return 0;

View File

@@ -31,6 +31,7 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>
********************************************************************************************************************/
#ifndef _zf_driver_flash_h_

View File

@@ -36,15 +36,6 @@
#pragma section all "cpu0_dsram"
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#pragma section all restore<72><65><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CPU0<55><30>RAM<41><4D>
// <20><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EBB5BD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ѡ<EFBFBD>й<EFBFBD><D0B9><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>refreshˢ<68><CBA2>һ<EFBFBD><D2BB>֮<EFBFBD><D6AE><EFBFBD>ٱ<EFBFBD><D9B1><EFBFBD>
// <20><><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ر<EFBFBD><D8B1>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>properties->C/C++ Build->Setting
// Ȼ<><C8BB><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>C/C++ Compiler->Optimization->Optimization level<65><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>
// һ<><D2BB>Ĭ<EFBFBD><C4AC><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9>̶<EFBFBD><CCB6><EFBFBD>Ĭ<EFBFBD>Ͽ<EFBFBD>2<EFBFBD><32><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˴<EFBFBD><CBB4><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ2<CEAA><32><EFBFBD>Ż<EFBFBD>
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// *************************** <20><><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> ***************************
// <20><><EFBFBD>İ<EFBFBD><C4B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7BCB4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>õ<EFBFBD><C3B5>ع<EFBFBD><D8B9><EFBFBD>

View File

@@ -36,6 +36,9 @@
#include "isr_config.h"
#include "isr.h"
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY)
{

View File

@@ -1,3 +1,5 @@
V3.2.1
flash<73><68><EFBFBD><EFBFBD>д<EFBFBD><D0B4>ʱ<EFBFBD><CAB1><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰҳ<C7B0><D2B3><EFBFBD>ж<EFBFBD> <20><>ֹ<EFBFBD>û<EFBFBD><C3BB><EFBFBD>ʹ<EFBFBD>ò<EFBFBD><C3B2><EFBFBD><E6B7B6><EFBFBD><EFBFBD>flashʹ<68>ñ<EFBFBD><C3B1><EFBFBD>
V3.2.0
<20><><EFBFBD><EFBFBD>wifi spiģ<69><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
<20><><EFBFBD><EFBFBD>detector<6F><72>λ<EFBFBD><CEBB>API<50>ӿ<EFBFBD>

View File

@@ -31,6 +31,8 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* 2023-07-15 pudding д<><D0B4>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD>ֹ<EFBFBD>û<EFBFBD>ʹ<EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
********************************************************************************************************************/
#include "IfxScuWdt.h"
@@ -41,6 +43,7 @@
flash_data_union flash_union_buffer[EEPROM_PAGE_LENGTH]; // FLASH <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD>
static uint8 flash_erase_page_flag; // FLASH <20><><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>־λ <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4> <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> У<><D0A3>FLASHҳ<48>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -86,6 +89,8 @@ void flash_erase_page (uint32 sector_num, uint32 page_num)
IfxScuWdt_setSafetyEndinit (end_init_sfty_pw);
IfxFlash_waitUnbusy(flash, IfxFlash_FlashType_D0);
flash_erase_page_flag = 1;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -131,6 +136,11 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
uint32 data_cont = 0;
end_init_sfty_pw = IfxScuWdt_getSafetyWatchdogPassword();
if(flash_erase_page_flag == 0 && flash_check(sector_num, page_num))
{
flash_erase_page(sector_num, page_num);
}
for(data_cont = 0; data_cont < len; data_cont ++)
{
data_addr = flash_addr + data_cont * FLASH_DATA_SIZE;
@@ -147,6 +157,8 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
IfxFlash_waitUnbusy(0, IfxFlash_FlashType_D0);
}
flash_erase_page_flag = 0;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -182,8 +194,6 @@ uint8 flash_write_page_from_buffer (uint32 sector_num, uint32 page_num)
{
uint32 *data_pointer = (uint32 *)flash_union_buffer;
zf_assert(EEPROM_PAGE_NUM > page_num);
flash_write_page(0, page_num, data_pointer, EEPROM_PAGE_LENGTH);
return 0;

View File

@@ -31,6 +31,7 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>
********************************************************************************************************************/
#ifndef _zf_driver_flash_h_

View File

@@ -38,15 +38,6 @@
#pragma section all "cpu0_dsram"
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#pragma section all restore<72><65><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CPU0<55><30>RAM<41><4D>
// <20><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EBB5BD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ѡ<EFBFBD>й<EFBFBD><D0B9><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>refreshˢ<68><CBA2>һ<EFBFBD><D2BB>֮<EFBFBD><D6AE><EFBFBD>ٱ<EFBFBD><D9B1><EFBFBD>
// <20><><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ر<EFBFBD><D8B1>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>properties->C/C++ Build->Setting
// Ȼ<><C8BB><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>C/C++ Compiler->Optimization->Optimization level<65><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>
// һ<><D2BB>Ĭ<EFBFBD><C4AC><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9>̶<EFBFBD><CCB6><EFBFBD>Ĭ<EFBFBD>Ͽ<EFBFBD>2<EFBFBD><32><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˴<EFBFBD><CBB4><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ2<CEAA><32><EFBFBD>Ż<EFBFBD>
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// *************************** <20><><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> ***************************
// ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF> Ӣ<><D3A2><EFBFBD><EFBFBD>TriCore <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// ֱ<>ӽ<EFBFBD><D3BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD><DABA>İ<EFBFBD><C4B0>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؽӿڼ<D3BF><DABC><EFBFBD>
@@ -57,7 +48,17 @@
// USB-TTL-GND <20><><EFBFBD>İ<EFBFBD><C4B0><EFBFBD>Դ<EFBFBD><D4B4> GND
// USB-TTL-3V3 <20><><EFBFBD>İ<EFBFBD> 3V3 <20><>Դ
// *************************** <20><><EFBFBD>̲<EFBFBD><CCB2><EFBFBD>˵<EFBFBD><CBB5> ***************************
//================================<3D>ر<EFBFBD>ע<EFBFBD><D7A2>================================
// <20><><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD>ʱһ<CAB1><D2BB>Ҫ<EFBFBD><D2AA>GND <20><><EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>ͨѶ
//================================<3D>ر<EFBFBD>ע<EFBFBD><D7A2>================================
//================================<3D>ر<EFBFBD>ע<EFBFBD><D7A2>================================
// <20><><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD>ʱһ<CAB1><D2BB>Ҫ<EFBFBD><D2AA>GND <20><><EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>ͨѶ
//================================<3D>ر<EFBFBD>ע<EFBFBD><D7A2>================================
//================================<3D>ر<EFBFBD>ע<EFBFBD><D7A2>================================
// <20><><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD>ʱһ<CAB1><D2BB>Ҫ<EFBFBD><D2AA>GND <20><><EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>ͨѶ
//================================<3D>ر<EFBFBD>ע<EFBFBD><D7A2>================================
// ***************************** <20><><EFBFBD>̲<EFBFBD><CCB2><EFBFBD>˵<EFBFBD><CBB5> *****************************
// 1.<2E><><EFBFBD>İ<EFBFBD><C4B0><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>ɱ<EFBFBD><C9B1><EFBFBD><EFBFBD>̣<EFBFBD><CCA3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ú<EFBFBD><C3BA>İ<EFBFBD><C4B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> USB-TTL ģ<><EFBFBD>ڶϵ<DAB6><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 2.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> USB-TTL ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>
// 3.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ򿪶<D6B4>Ӧ<EFBFBD>Ĵ<EFBFBD><C4B4>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>Ϊ DEBUG_UART_BAUDRATE <20><EFBFBD><EAB6A8> Ĭ<><C4AC> 115200<30><30><EFBFBD><EFBFBD><EFBFBD>İ尴<C4B0>¸<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
@@ -67,7 +68,7 @@
// UART get data:.......
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ձ<EFBFBD><D5B1>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>·<EFBFBD> <20><><EFBFBD>̳<EFBFBD><CCB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> <20><><EFBFBD><EFBFBD><EFBFBD>Ų<EFBFBD>
// **************************** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ****************************
// ******************************* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *******************************
#define UART_INDEX (DEBUG_UART_INDEX ) // Ĭ<><C4AC> UART_0
#define UART_BAUDRATE (DEBUG_UART_BAUDRATE) // Ĭ<><C4AC> 115200
#define UART_TX_PIN (DEBUG_UART_TX_PIN ) // Ĭ<><C4AC> UART0_TX_P14_0
@@ -140,9 +141,9 @@ IFX_INTERRUPT(uart0_rx_isr, 0, UART0_RX_INT_PRIO)
#pragma section all restore
// **************************** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ****************************
// ******************************* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *******************************
// *************************** <20><><EFBFBD>̳<EFBFBD><CCB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> ***************************
// **************************** <20><><EFBFBD>̳<EFBFBD><CCB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> ****************************
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EBB0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><EFBFBD><E9BFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ򿪵<D6B4><F2BFAAB5>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD>Ĵ<EFBFBD><C4B4>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򿪵<EFBFBD> COM <20><><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> USB-TTL ģ<><C4A3><EFBFBD><EFBFBD> COM <20><>

View File

@@ -36,6 +36,12 @@
#include "isr_config.h"
#include "isr.h"
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY)
{

View File

@@ -1,3 +1,5 @@
V3.2.1
flash<73><68><EFBFBD><EFBFBD>д<EFBFBD><D0B4>ʱ<EFBFBD><CAB1><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰҳ<C7B0><D2B3><EFBFBD>ж<EFBFBD> <20><>ֹ<EFBFBD>û<EFBFBD><C3BB><EFBFBD>ʹ<EFBFBD>ò<EFBFBD><C3B2><EFBFBD><E6B7B6><EFBFBD><EFBFBD>flashʹ<68>ñ<EFBFBD><C3B1><EFBFBD>
V3.2.0
<20><><EFBFBD><EFBFBD>wifi spiģ<69><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
<20><><EFBFBD><EFBFBD>detector<6F><72>λ<EFBFBD><CEBB>API<50>ӿ<EFBFBD>

View File

@@ -31,6 +31,8 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* 2023-07-15 pudding д<><D0B4>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD>ֹ<EFBFBD>û<EFBFBD>ʹ<EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
********************************************************************************************************************/
#include "IfxScuWdt.h"
@@ -41,6 +43,7 @@
flash_data_union flash_union_buffer[EEPROM_PAGE_LENGTH]; // FLASH <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD>
static uint8 flash_erase_page_flag; // FLASH <20><><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>־λ <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4> <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> У<><D0A3>FLASHҳ<48>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -86,6 +89,8 @@ void flash_erase_page (uint32 sector_num, uint32 page_num)
IfxScuWdt_setSafetyEndinit (end_init_sfty_pw);
IfxFlash_waitUnbusy(flash, IfxFlash_FlashType_D0);
flash_erase_page_flag = 1;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -131,6 +136,11 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
uint32 data_cont = 0;
end_init_sfty_pw = IfxScuWdt_getSafetyWatchdogPassword();
if(flash_erase_page_flag == 0 && flash_check(sector_num, page_num))
{
flash_erase_page(sector_num, page_num);
}
for(data_cont = 0; data_cont < len; data_cont ++)
{
data_addr = flash_addr + data_cont * FLASH_DATA_SIZE;
@@ -147,6 +157,8 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
IfxFlash_waitUnbusy(0, IfxFlash_FlashType_D0);
}
flash_erase_page_flag = 0;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -182,8 +194,6 @@ uint8 flash_write_page_from_buffer (uint32 sector_num, uint32 page_num)
{
uint32 *data_pointer = (uint32 *)flash_union_buffer;
zf_assert(EEPROM_PAGE_NUM > page_num);
flash_write_page(0, page_num, data_pointer, EEPROM_PAGE_LENGTH);
return 0;

View File

@@ -31,6 +31,7 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>
********************************************************************************************************************/
#ifndef _zf_driver_flash_h_

View File

@@ -36,15 +36,6 @@
#pragma section all "cpu0_dsram"
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#pragma section all restore<72><65><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CPU0<55><30>RAM<41><4D>
// <20><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EBB5BD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ѡ<EFBFBD>й<EFBFBD><D0B9><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>refreshˢ<68><CBA2>һ<EFBFBD><D2BB>֮<EFBFBD><D6AE><EFBFBD>ٱ<EFBFBD><D9B1><EFBFBD>
// <20><><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ر<EFBFBD><D8B1>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>properties->C/C++ Build->Setting
// Ȼ<><C8BB><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>C/C++ Compiler->Optimization->Optimization level<65><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>
// һ<><D2BB>Ĭ<EFBFBD><C4AC><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9>̶<EFBFBD><CCB6><EFBFBD>Ĭ<EFBFBD>Ͽ<EFBFBD>2<EFBFBD><32><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˴<EFBFBD><CBB4><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ2<CEAA><32><EFBFBD>Ż<EFBFBD>
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// *************************** <20><><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> ***************************
// ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF> Ӣ<><D3A2><EFBFBD><EFBFBD>TriCore <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// ֱ<>ӽ<EFBFBD><D3BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD><DABA>İ<EFBFBD><C4B0>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؽӿڼ<D3BF><DABC><EFBFBD>

View File

@@ -36,6 +36,9 @@
#include "isr_config.h"
#include "isr.h"
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY)
{

View File

@@ -1,3 +1,5 @@
V3.2.1
flash<73><68><EFBFBD><EFBFBD>д<EFBFBD><D0B4>ʱ<EFBFBD><CAB1><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰҳ<C7B0><D2B3><EFBFBD>ж<EFBFBD> <20><>ֹ<EFBFBD>û<EFBFBD><C3BB><EFBFBD>ʹ<EFBFBD>ò<EFBFBD><C3B2><EFBFBD><E6B7B6><EFBFBD><EFBFBD>flashʹ<68>ñ<EFBFBD><C3B1><EFBFBD>
V3.2.0
<20><><EFBFBD><EFBFBD>wifi spiģ<69><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
<20><><EFBFBD><EFBFBD>detector<6F><72>λ<EFBFBD><CEBB>API<50>ӿ<EFBFBD>

View File

@@ -31,6 +31,8 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* 2023-07-15 pudding д<><D0B4>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD>ֹ<EFBFBD>û<EFBFBD>ʹ<EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
********************************************************************************************************************/
#include "IfxScuWdt.h"
@@ -41,6 +43,7 @@
flash_data_union flash_union_buffer[EEPROM_PAGE_LENGTH]; // FLASH <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD>
static uint8 flash_erase_page_flag; // FLASH <20><><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>־λ <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4> <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> У<><D0A3>FLASHҳ<48>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -86,6 +89,8 @@ void flash_erase_page (uint32 sector_num, uint32 page_num)
IfxScuWdt_setSafetyEndinit (end_init_sfty_pw);
IfxFlash_waitUnbusy(flash, IfxFlash_FlashType_D0);
flash_erase_page_flag = 1;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -131,6 +136,11 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
uint32 data_cont = 0;
end_init_sfty_pw = IfxScuWdt_getSafetyWatchdogPassword();
if(flash_erase_page_flag == 0 && flash_check(sector_num, page_num))
{
flash_erase_page(sector_num, page_num);
}
for(data_cont = 0; data_cont < len; data_cont ++)
{
data_addr = flash_addr + data_cont * FLASH_DATA_SIZE;
@@ -147,6 +157,8 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
IfxFlash_waitUnbusy(0, IfxFlash_FlashType_D0);
}
flash_erase_page_flag = 0;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -182,8 +194,6 @@ uint8 flash_write_page_from_buffer (uint32 sector_num, uint32 page_num)
{
uint32 *data_pointer = (uint32 *)flash_union_buffer;
zf_assert(EEPROM_PAGE_NUM > page_num);
flash_write_page(0, page_num, data_pointer, EEPROM_PAGE_LENGTH);
return 0;

View File

@@ -31,6 +31,7 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>
********************************************************************************************************************/
#ifndef _zf_driver_flash_h_

View File

@@ -36,16 +36,6 @@
#pragma section all "cpu0_dsram"
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#pragma section all restore<72><65><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CPU0<55><30>RAM<41><4D>
// <20><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EBB5BD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ѡ<EFBFBD>й<EFBFBD><D0B9><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>refreshˢ<68><CBA2>һ<EFBFBD><D2BB>֮<EFBFBD><D6AE><EFBFBD>ٱ<EFBFBD><D9B1><EFBFBD>
// <20><><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ر<EFBFBD><D8B1>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>properties->C/C++ Build->Setting
// Ȼ<><C8BB><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>C/C++ Compiler->Optimization->Optimization level<65><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>
// һ<><D2BB>Ĭ<EFBFBD><C4AC><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9>̶<EFBFBD><CCB6><EFBFBD>Ĭ<EFBFBD>Ͽ<EFBFBD>2<EFBFBD><32><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˴<EFBFBD><CBB4><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ2<CEAA><32><EFBFBD>Ż<EFBFBD>
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// *************************** <20><><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> ***************************
// <20><><EFBFBD>İ<EFBFBD><C4B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7BCB4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

View File

@@ -36,6 +36,9 @@
#include "isr_config.h"
#include "isr.h"
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY)
{

View File

@@ -1,3 +1,5 @@
V3.2.1
flash<73><68><EFBFBD><EFBFBD>д<EFBFBD><D0B4>ʱ<EFBFBD><CAB1><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰҳ<C7B0><D2B3><EFBFBD>ж<EFBFBD> <20><>ֹ<EFBFBD>û<EFBFBD><C3BB><EFBFBD>ʹ<EFBFBD>ò<EFBFBD><C3B2><EFBFBD><E6B7B6><EFBFBD><EFBFBD>flashʹ<68>ñ<EFBFBD><C3B1><EFBFBD>
V3.2.0
<20><><EFBFBD><EFBFBD>wifi spiģ<69><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
<20><><EFBFBD><EFBFBD>detector<6F><72>λ<EFBFBD><CEBB>API<50>ӿ<EFBFBD>

View File

@@ -31,6 +31,8 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* 2023-07-15 pudding д<><D0B4>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD>ֹ<EFBFBD>û<EFBFBD>ʹ<EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
********************************************************************************************************************/
#include "IfxScuWdt.h"
@@ -41,6 +43,7 @@
flash_data_union flash_union_buffer[EEPROM_PAGE_LENGTH]; // FLASH <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD>
static uint8 flash_erase_page_flag; // FLASH <20><><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>־λ <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4> <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> У<><D0A3>FLASHҳ<48>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -86,6 +89,8 @@ void flash_erase_page (uint32 sector_num, uint32 page_num)
IfxScuWdt_setSafetyEndinit (end_init_sfty_pw);
IfxFlash_waitUnbusy(flash, IfxFlash_FlashType_D0);
flash_erase_page_flag = 1;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -131,6 +136,11 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
uint32 data_cont = 0;
end_init_sfty_pw = IfxScuWdt_getSafetyWatchdogPassword();
if(flash_erase_page_flag == 0 && flash_check(sector_num, page_num))
{
flash_erase_page(sector_num, page_num);
}
for(data_cont = 0; data_cont < len; data_cont ++)
{
data_addr = flash_addr + data_cont * FLASH_DATA_SIZE;
@@ -147,6 +157,8 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
IfxFlash_waitUnbusy(0, IfxFlash_FlashType_D0);
}
flash_erase_page_flag = 0;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -182,8 +194,6 @@ uint8 flash_write_page_from_buffer (uint32 sector_num, uint32 page_num)
{
uint32 *data_pointer = (uint32 *)flash_union_buffer;
zf_assert(EEPROM_PAGE_NUM > page_num);
flash_write_page(0, page_num, data_pointer, EEPROM_PAGE_LENGTH);
return 0;

View File

@@ -31,6 +31,7 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>
********************************************************************************************************************/
#ifndef _zf_driver_flash_h_

View File

@@ -37,15 +37,6 @@
#pragma section all "cpu0_dsram"
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#pragma section all restore<72><65><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CPU0<55><30>RAM<41><4D>
// <20><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EBB5BD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ѡ<EFBFBD>й<EFBFBD><D0B9><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>refreshˢ<68><CBA2>һ<EFBFBD><D2BB>֮<EFBFBD><D6AE><EFBFBD>ٱ<EFBFBD><D9B1><EFBFBD>
// <20><><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ر<EFBFBD><D8B1>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>properties->C/C++ Build->Setting
// Ȼ<><C8BB><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>C/C++ Compiler->Optimization->Optimization level<65><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>
// һ<><D2BB>Ĭ<EFBFBD><C4AC><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9>̶<EFBFBD><CCB6><EFBFBD>Ĭ<EFBFBD>Ͽ<EFBFBD>2<EFBFBD><32><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˴<EFBFBD><CBB4><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ2<CEAA><32><EFBFBD>Ż<EFBFBD>
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// *************************** <20><><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> ***********************
// <20><><EFBFBD>İ<EFBFBD><C4B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7BCB4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

View File

@@ -36,6 +36,9 @@
#include "isr_config.h"
#include "isr.h"
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
//IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY)
//{

View File

@@ -1,3 +1,5 @@
V3.2.1
flash<73><68><EFBFBD><EFBFBD>д<EFBFBD><D0B4>ʱ<EFBFBD><CAB1><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰҳ<C7B0><D2B3><EFBFBD>ж<EFBFBD> <20><>ֹ<EFBFBD>û<EFBFBD><C3BB><EFBFBD>ʹ<EFBFBD>ò<EFBFBD><C3B2><EFBFBD><E6B7B6><EFBFBD><EFBFBD>flashʹ<68>ñ<EFBFBD><C3B1><EFBFBD>
V3.2.0
<20><><EFBFBD><EFBFBD>wifi spiģ<69><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
<20><><EFBFBD><EFBFBD>detector<6F><72>λ<EFBFBD><CEBB>API<50>ӿ<EFBFBD>

View File

@@ -31,6 +31,8 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* 2023-07-15 pudding д<><D0B4>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD>ֹ<EFBFBD>û<EFBFBD>ʹ<EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
********************************************************************************************************************/
#include "IfxScuWdt.h"
@@ -41,6 +43,7 @@
flash_data_union flash_union_buffer[EEPROM_PAGE_LENGTH]; // FLASH <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD>
static uint8 flash_erase_page_flag; // FLASH <20><><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>־λ <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4> <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> У<><D0A3>FLASHҳ<48>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -86,6 +89,8 @@ void flash_erase_page (uint32 sector_num, uint32 page_num)
IfxScuWdt_setSafetyEndinit (end_init_sfty_pw);
IfxFlash_waitUnbusy(flash, IfxFlash_FlashType_D0);
flash_erase_page_flag = 1;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -131,6 +136,11 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
uint32 data_cont = 0;
end_init_sfty_pw = IfxScuWdt_getSafetyWatchdogPassword();
if(flash_erase_page_flag == 0 && flash_check(sector_num, page_num))
{
flash_erase_page(sector_num, page_num);
}
for(data_cont = 0; data_cont < len; data_cont ++)
{
data_addr = flash_addr + data_cont * FLASH_DATA_SIZE;
@@ -147,6 +157,8 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
IfxFlash_waitUnbusy(0, IfxFlash_FlashType_D0);
}
flash_erase_page_flag = 0;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -182,8 +194,6 @@ uint8 flash_write_page_from_buffer (uint32 sector_num, uint32 page_num)
{
uint32 *data_pointer = (uint32 *)flash_union_buffer;
zf_assert(EEPROM_PAGE_NUM > page_num);
flash_write_page(0, page_num, data_pointer, EEPROM_PAGE_LENGTH);
return 0;

View File

@@ -31,6 +31,7 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>
********************************************************************************************************************/
#ifndef _zf_driver_flash_h_

View File

@@ -38,15 +38,6 @@
#pragma section all "cpu0_dsram"
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#pragma section all restore<72><65><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CPU0<55><30>RAM<41><4D>
// <20><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EBB5BD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ѡ<EFBFBD>й<EFBFBD><D0B9><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>refreshˢ<68><CBA2>һ<EFBFBD><D2BB>֮<EFBFBD><D6AE><EFBFBD>ٱ<EFBFBD><D9B1><EFBFBD>
// <20><><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ر<EFBFBD><D8B1>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>properties->C/C++ Build->Setting
// Ȼ<><C8BB><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>C/C++ Compiler->Optimization->Optimization level<65><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>
// һ<><D2BB>Ĭ<EFBFBD><C4AC><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9>̶<EFBFBD><CCB6><EFBFBD>Ĭ<EFBFBD>Ͽ<EFBFBD>2<EFBFBD><32><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˴<EFBFBD><CBB4><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ2<CEAA><32><EFBFBD>Ż<EFBFBD>
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// *************************** <20><><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> ***************************
// <20><><EFBFBD>İ<EFBFBD><C4B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7BCB4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

View File

@@ -36,6 +36,9 @@
#include "isr_config.h"
#include "isr.h"
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY)
{

View File

@@ -1,3 +1,5 @@
V3.2.1
flash<73><68><EFBFBD><EFBFBD>д<EFBFBD><D0B4>ʱ<EFBFBD><CAB1><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰҳ<C7B0><D2B3><EFBFBD>ж<EFBFBD> <20><>ֹ<EFBFBD>û<EFBFBD><C3BB><EFBFBD>ʹ<EFBFBD>ò<EFBFBD><C3B2><EFBFBD><E6B7B6><EFBFBD><EFBFBD>flashʹ<68>ñ<EFBFBD><C3B1><EFBFBD>
V3.2.0
<20><><EFBFBD><EFBFBD>wifi spiģ<69><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
<20><><EFBFBD><EFBFBD>detector<6F><72>λ<EFBFBD><CEBB>API<50>ӿ<EFBFBD>

View File

@@ -31,6 +31,8 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* 2023-07-15 pudding д<><D0B4>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD>ֹ<EFBFBD>û<EFBFBD>ʹ<EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
********************************************************************************************************************/
#include "IfxScuWdt.h"
@@ -41,6 +43,7 @@
flash_data_union flash_union_buffer[EEPROM_PAGE_LENGTH]; // FLASH <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD>
static uint8 flash_erase_page_flag; // FLASH <20><><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>־λ <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4> <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> У<><D0A3>FLASHҳ<48>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -86,6 +89,8 @@ void flash_erase_page (uint32 sector_num, uint32 page_num)
IfxScuWdt_setSafetyEndinit (end_init_sfty_pw);
IfxFlash_waitUnbusy(flash, IfxFlash_FlashType_D0);
flash_erase_page_flag = 1;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -131,6 +136,11 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
uint32 data_cont = 0;
end_init_sfty_pw = IfxScuWdt_getSafetyWatchdogPassword();
if(flash_erase_page_flag == 0 && flash_check(sector_num, page_num))
{
flash_erase_page(sector_num, page_num);
}
for(data_cont = 0; data_cont < len; data_cont ++)
{
data_addr = flash_addr + data_cont * FLASH_DATA_SIZE;
@@ -147,6 +157,8 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
IfxFlash_waitUnbusy(0, IfxFlash_FlashType_D0);
}
flash_erase_page_flag = 0;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -182,8 +194,6 @@ uint8 flash_write_page_from_buffer (uint32 sector_num, uint32 page_num)
{
uint32 *data_pointer = (uint32 *)flash_union_buffer;
zf_assert(EEPROM_PAGE_NUM > page_num);
flash_write_page(0, page_num, data_pointer, EEPROM_PAGE_LENGTH);
return 0;

View File

@@ -31,6 +31,7 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>
********************************************************************************************************************/
#ifndef _zf_driver_flash_h_

View File

@@ -38,15 +38,6 @@
#pragma section all "cpu0_dsram"
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#pragma section all restore<72><65><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CPU0<55><30>RAM<41><4D>
// <20><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EBB5BD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ѡ<EFBFBD>й<EFBFBD><D0B9><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>refreshˢ<68><CBA2>һ<EFBFBD><D2BB>֮<EFBFBD><D6AE><EFBFBD>ٱ<EFBFBD><D9B1><EFBFBD>
// <20><><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ر<EFBFBD><D8B1>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>properties->C/C++ Build->Setting
// Ȼ<><C8BB><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>C/C++ Compiler->Optimization->Optimization level<65><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>
// һ<><D2BB>Ĭ<EFBFBD><C4AC><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9>̶<EFBFBD><CCB6><EFBFBD>Ĭ<EFBFBD>Ͽ<EFBFBD>2<EFBFBD><32><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˴<EFBFBD><CBB4><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ2<CEAA><32><EFBFBD>Ż<EFBFBD>
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// *************************** <20><><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> ***************************
// ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF> Ӣ<><D3A2><EFBFBD><EFBFBD>TriCore <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// ֱ<>ӽ<EFBFBD><D3BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD><DABA>İ<EFBFBD><C4B0>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؽӿڼ<D3BF><DABC><EFBFBD>

View File

@@ -36,6 +36,9 @@
#include "isr_config.h"
#include "isr.h"
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
//IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY)
//{

View File

@@ -1,3 +1,5 @@
V3.2.1
flash<73><68><EFBFBD><EFBFBD>д<EFBFBD><D0B4>ʱ<EFBFBD><CAB1><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰҳ<C7B0><D2B3><EFBFBD>ж<EFBFBD> <20><>ֹ<EFBFBD>û<EFBFBD><C3BB><EFBFBD>ʹ<EFBFBD>ò<EFBFBD><C3B2><EFBFBD><E6B7B6><EFBFBD><EFBFBD>flashʹ<68>ñ<EFBFBD><C3B1><EFBFBD>
V3.2.0
<20><><EFBFBD><EFBFBD>wifi spiģ<69><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
<20><><EFBFBD><EFBFBD>detector<6F><72>λ<EFBFBD><CEBB>API<50>ӿ<EFBFBD>

View File

@@ -31,6 +31,8 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* 2023-07-15 pudding д<><D0B4>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD>ֹ<EFBFBD>û<EFBFBD>ʹ<EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
********************************************************************************************************************/
#include "IfxScuWdt.h"
@@ -41,6 +43,7 @@
flash_data_union flash_union_buffer[EEPROM_PAGE_LENGTH]; // FLASH <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD>
static uint8 flash_erase_page_flag; // FLASH <20><><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>־λ <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4> <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> У<><D0A3>FLASHҳ<48>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -86,6 +89,8 @@ void flash_erase_page (uint32 sector_num, uint32 page_num)
IfxScuWdt_setSafetyEndinit (end_init_sfty_pw);
IfxFlash_waitUnbusy(flash, IfxFlash_FlashType_D0);
flash_erase_page_flag = 1;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -131,6 +136,11 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
uint32 data_cont = 0;
end_init_sfty_pw = IfxScuWdt_getSafetyWatchdogPassword();
if(flash_erase_page_flag == 0 && flash_check(sector_num, page_num))
{
flash_erase_page(sector_num, page_num);
}
for(data_cont = 0; data_cont < len; data_cont ++)
{
data_addr = flash_addr + data_cont * FLASH_DATA_SIZE;
@@ -147,6 +157,8 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
IfxFlash_waitUnbusy(0, IfxFlash_FlashType_D0);
}
flash_erase_page_flag = 0;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -182,8 +194,6 @@ uint8 flash_write_page_from_buffer (uint32 sector_num, uint32 page_num)
{
uint32 *data_pointer = (uint32 *)flash_union_buffer;
zf_assert(EEPROM_PAGE_NUM > page_num);
flash_write_page(0, page_num, data_pointer, EEPROM_PAGE_LENGTH);
return 0;

View File

@@ -31,6 +31,7 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>
********************************************************************************************************************/
#ifndef _zf_driver_flash_h_

View File

@@ -36,16 +36,6 @@
#pragma section all "cpu0_dsram"
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#pragma section all restore<72><65><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CPU0<55><30>RAM<41><4D>
// <20><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EBB5BD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ѡ<EFBFBD>й<EFBFBD><D0B9><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>refreshˢ<68><CBA2>һ<EFBFBD><D2BB>֮<EFBFBD><D6AE><EFBFBD>ٱ<EFBFBD><D9B1><EFBFBD>
// <20><><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ر<EFBFBD><D8B1>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>properties->C/C++ Build->Setting
// Ȼ<><C8BB><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>C/C++ Compiler->Optimization->Optimization level<65><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>
// һ<><D2BB>Ĭ<EFBFBD><C4AC><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9>̶<EFBFBD><CCB6><EFBFBD>Ĭ<EFBFBD>Ͽ<EFBFBD>2<EFBFBD><32><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˴<EFBFBD><CBB4><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ2<CEAA><32><EFBFBD>Ż<EFBFBD>
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// *************************** <20><><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> ***************************
// ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF> Ӣ<><D3A2><EFBFBD><EFBFBD>TriCore <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// ֱ<>ӽ<EFBFBD><D3BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD><DABA>İ<EFBFBD><C4B0>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؽӿڼ<D3BF><DABC><EFBFBD>

View File

@@ -36,6 +36,9 @@
#include "isr_config.h"
#include "isr.h"
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY)
{

View File

@@ -1,3 +1,5 @@
V3.2.1
flash<73><68><EFBFBD><EFBFBD>д<EFBFBD><D0B4>ʱ<EFBFBD><CAB1><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰҳ<C7B0><D2B3><EFBFBD>ж<EFBFBD> <20><>ֹ<EFBFBD>û<EFBFBD><C3BB><EFBFBD>ʹ<EFBFBD>ò<EFBFBD><C3B2><EFBFBD><E6B7B6><EFBFBD><EFBFBD>flashʹ<68>ñ<EFBFBD><C3B1><EFBFBD>
V3.2.0
<20><><EFBFBD><EFBFBD>wifi spiģ<69><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
<20><><EFBFBD><EFBFBD>detector<6F><72>λ<EFBFBD><CEBB>API<50>ӿ<EFBFBD>

View File

@@ -31,6 +31,8 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* 2023-07-15 pudding д<><D0B4>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD>ֹ<EFBFBD>û<EFBFBD>ʹ<EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
********************************************************************************************************************/
#include "IfxScuWdt.h"
@@ -41,6 +43,7 @@
flash_data_union flash_union_buffer[EEPROM_PAGE_LENGTH]; // FLASH <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD>
static uint8 flash_erase_page_flag; // FLASH <20><><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>־λ <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4> <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> У<><D0A3>FLASHҳ<48>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -86,6 +89,8 @@ void flash_erase_page (uint32 sector_num, uint32 page_num)
IfxScuWdt_setSafetyEndinit (end_init_sfty_pw);
IfxFlash_waitUnbusy(flash, IfxFlash_FlashType_D0);
flash_erase_page_flag = 1;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -131,6 +136,11 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
uint32 data_cont = 0;
end_init_sfty_pw = IfxScuWdt_getSafetyWatchdogPassword();
if(flash_erase_page_flag == 0 && flash_check(sector_num, page_num))
{
flash_erase_page(sector_num, page_num);
}
for(data_cont = 0; data_cont < len; data_cont ++)
{
data_addr = flash_addr + data_cont * FLASH_DATA_SIZE;
@@ -147,6 +157,8 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
IfxFlash_waitUnbusy(0, IfxFlash_FlashType_D0);
}
flash_erase_page_flag = 0;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -182,8 +194,6 @@ uint8 flash_write_page_from_buffer (uint32 sector_num, uint32 page_num)
{
uint32 *data_pointer = (uint32 *)flash_union_buffer;
zf_assert(EEPROM_PAGE_NUM > page_num);
flash_write_page(0, page_num, data_pointer, EEPROM_PAGE_LENGTH);
return 0;

View File

@@ -31,6 +31,7 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>
********************************************************************************************************************/
#ifndef _zf_driver_flash_h_

View File

@@ -36,15 +36,6 @@
#pragma section all "cpu0_dsram"
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#pragma section all restore<72><65><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CPU0<55><30>RAM<41><4D>
// <20><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EBB5BD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ѡ<EFBFBD>й<EFBFBD><D0B9><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>refreshˢ<68><CBA2>һ<EFBFBD><D2BB>֮<EFBFBD><D6AE><EFBFBD>ٱ<EFBFBD><D9B1><EFBFBD>
// <20><><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ر<EFBFBD><D8B1>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>properties->C/C++ Build->Setting
// Ȼ<><C8BB><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>C/C++ Compiler->Optimization->Optimization level<65><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>
// һ<><D2BB>Ĭ<EFBFBD><C4AC><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9>̶<EFBFBD><CCB6><EFBFBD>Ĭ<EFBFBD>Ͽ<EFBFBD>2<EFBFBD><32><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˴<EFBFBD><CBB4><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ2<CEAA><32><EFBFBD>Ż<EFBFBD>
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// *************************** <20><><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> ***************************
// ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF> Ӣ<><D3A2><EFBFBD><EFBFBD>TriCore <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// ֱ<>ӽ<EFBFBD><D3BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD><DABA>İ<EFBFBD><C4B0>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؽӿڼ<D3BF><DABC><EFBFBD>

View File

@@ -36,6 +36,9 @@
#include "isr_config.h"
#include "isr.h"
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY)
{

View File

@@ -1,3 +1,5 @@
V3.2.1
flash<73><68><EFBFBD><EFBFBD>д<EFBFBD><D0B4>ʱ<EFBFBD><CAB1><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰҳ<C7B0><D2B3><EFBFBD>ж<EFBFBD> <20><>ֹ<EFBFBD>û<EFBFBD><C3BB><EFBFBD>ʹ<EFBFBD>ò<EFBFBD><C3B2><EFBFBD><E6B7B6><EFBFBD><EFBFBD>flashʹ<68>ñ<EFBFBD><C3B1><EFBFBD>
V3.2.0
<20><><EFBFBD><EFBFBD>wifi spiģ<69><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
<20><><EFBFBD><EFBFBD>detector<6F><72>λ<EFBFBD><CEBB>API<50>ӿ<EFBFBD>

View File

@@ -31,6 +31,8 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* 2023-07-15 pudding д<><D0B4>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD>ֹ<EFBFBD>û<EFBFBD>ʹ<EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
********************************************************************************************************************/
#include "IfxScuWdt.h"
@@ -41,6 +43,7 @@
flash_data_union flash_union_buffer[EEPROM_PAGE_LENGTH]; // FLASH <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD>
static uint8 flash_erase_page_flag; // FLASH <20><><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>־λ <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4> <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> У<><D0A3>FLASHҳ<48>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -86,6 +89,8 @@ void flash_erase_page (uint32 sector_num, uint32 page_num)
IfxScuWdt_setSafetyEndinit (end_init_sfty_pw);
IfxFlash_waitUnbusy(flash, IfxFlash_FlashType_D0);
flash_erase_page_flag = 1;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -131,6 +136,11 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
uint32 data_cont = 0;
end_init_sfty_pw = IfxScuWdt_getSafetyWatchdogPassword();
if(flash_erase_page_flag == 0 && flash_check(sector_num, page_num))
{
flash_erase_page(sector_num, page_num);
}
for(data_cont = 0; data_cont < len; data_cont ++)
{
data_addr = flash_addr + data_cont * FLASH_DATA_SIZE;
@@ -147,6 +157,8 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
IfxFlash_waitUnbusy(0, IfxFlash_FlashType_D0);
}
flash_erase_page_flag = 0;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -182,8 +194,6 @@ uint8 flash_write_page_from_buffer (uint32 sector_num, uint32 page_num)
{
uint32 *data_pointer = (uint32 *)flash_union_buffer;
zf_assert(EEPROM_PAGE_NUM > page_num);
flash_write_page(0, page_num, data_pointer, EEPROM_PAGE_LENGTH);
return 0;

View File

@@ -31,6 +31,7 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>
********************************************************************************************************************/
#ifndef _zf_driver_flash_h_

View File

@@ -36,15 +36,6 @@
#pragma section all "cpu0_dsram"
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#pragma section all restore<72><65><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CPU0<55><30>RAM<41><4D>
// <20><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EBB5BD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ѡ<EFBFBD>й<EFBFBD><D0B9><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>refreshˢ<68><CBA2>һ<EFBFBD><D2BB>֮<EFBFBD><D6AE><EFBFBD>ٱ<EFBFBD><D9B1><EFBFBD>
// <20><><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ر<EFBFBD><D8B1>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>properties->C/C++ Build->Setting
// Ȼ<><C8BB><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>C/C++ Compiler->Optimization->Optimization level<65><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>
// һ<><D2BB>Ĭ<EFBFBD><C4AC><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9>̶<EFBFBD><CCB6><EFBFBD>Ĭ<EFBFBD>Ͽ<EFBFBD>2<EFBFBD><32><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˴<EFBFBD><CBB4><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ2<CEAA><32><EFBFBD>Ż<EFBFBD>
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// *************************** <20><><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> ***************************
// ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF> Ӣ<><D3A2><EFBFBD><EFBFBD>TriCore <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// ֱ<>ӽ<EFBFBD><D3BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD><DABA>İ<EFBFBD><C4B0>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؽӿڼ<D3BF><DABC><EFBFBD>

View File

@@ -36,6 +36,9 @@
#include "isr_config.h"
#include "isr.h"
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY)
{

View File

@@ -1,3 +1,5 @@
V3.2.1
flash<73><68><EFBFBD><EFBFBD>д<EFBFBD><D0B4>ʱ<EFBFBD><CAB1><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰҳ<C7B0><D2B3><EFBFBD>ж<EFBFBD> <20><>ֹ<EFBFBD>û<EFBFBD><C3BB><EFBFBD>ʹ<EFBFBD>ò<EFBFBD><C3B2><EFBFBD><E6B7B6><EFBFBD><EFBFBD>flashʹ<68>ñ<EFBFBD><C3B1><EFBFBD>
V3.2.0
<20><><EFBFBD><EFBFBD>wifi spiģ<69><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
<20><><EFBFBD><EFBFBD>detector<6F><72>λ<EFBFBD><CEBB>API<50>ӿ<EFBFBD>

View File

@@ -31,6 +31,8 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* 2023-07-15 pudding д<><D0B4>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD>ֹ<EFBFBD>û<EFBFBD>ʹ<EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
********************************************************************************************************************/
#include "IfxScuWdt.h"
@@ -41,6 +43,7 @@
flash_data_union flash_union_buffer[EEPROM_PAGE_LENGTH]; // FLASH <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD>
static uint8 flash_erase_page_flag; // FLASH <20><><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>־λ <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4> <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> У<><D0A3>FLASHҳ<48>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -86,6 +89,8 @@ void flash_erase_page (uint32 sector_num, uint32 page_num)
IfxScuWdt_setSafetyEndinit (end_init_sfty_pw);
IfxFlash_waitUnbusy(flash, IfxFlash_FlashType_D0);
flash_erase_page_flag = 1;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -131,6 +136,11 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
uint32 data_cont = 0;
end_init_sfty_pw = IfxScuWdt_getSafetyWatchdogPassword();
if(flash_erase_page_flag == 0 && flash_check(sector_num, page_num))
{
flash_erase_page(sector_num, page_num);
}
for(data_cont = 0; data_cont < len; data_cont ++)
{
data_addr = flash_addr + data_cont * FLASH_DATA_SIZE;
@@ -147,6 +157,8 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
IfxFlash_waitUnbusy(0, IfxFlash_FlashType_D0);
}
flash_erase_page_flag = 0;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -182,8 +194,6 @@ uint8 flash_write_page_from_buffer (uint32 sector_num, uint32 page_num)
{
uint32 *data_pointer = (uint32 *)flash_union_buffer;
zf_assert(EEPROM_PAGE_NUM > page_num);
flash_write_page(0, page_num, data_pointer, EEPROM_PAGE_LENGTH);
return 0;

View File

@@ -31,6 +31,7 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>
********************************************************************************************************************/
#ifndef _zf_driver_flash_h_

View File

@@ -36,15 +36,6 @@
#pragma section all "cpu0_dsram"
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#pragma section all restore<72><65><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CPU0<55><30>RAM<41><4D>
// <20><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EBB5BD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ѡ<EFBFBD>й<EFBFBD><D0B9><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>refreshˢ<68><CBA2>һ<EFBFBD><D2BB>֮<EFBFBD><D6AE><EFBFBD>ٱ<EFBFBD><D9B1><EFBFBD>
// <20><><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ر<EFBFBD><D8B1>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>properties->C/C++ Build->Setting
// Ȼ<><C8BB><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>C/C++ Compiler->Optimization->Optimization level<65><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>
// һ<><D2BB>Ĭ<EFBFBD><C4AC><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9>̶<EFBFBD><CCB6><EFBFBD>Ĭ<EFBFBD>Ͽ<EFBFBD>2<EFBFBD><32><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˴<EFBFBD><CBB4><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ2<CEAA><32><EFBFBD>Ż<EFBFBD>
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// **************************** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ****************************

View File

@@ -36,6 +36,9 @@
#include "isr_config.h"
#include "isr.h"
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY)
{

View File

@@ -1,3 +1,5 @@
V3.2.1
flash<73><68><EFBFBD><EFBFBD>д<EFBFBD><D0B4>ʱ<EFBFBD><CAB1><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰҳ<C7B0><D2B3><EFBFBD>ж<EFBFBD> <20><>ֹ<EFBFBD>û<EFBFBD><C3BB><EFBFBD>ʹ<EFBFBD>ò<EFBFBD><C3B2><EFBFBD><E6B7B6><EFBFBD><EFBFBD>flashʹ<68>ñ<EFBFBD><C3B1><EFBFBD>
V3.2.0
<20><><EFBFBD><EFBFBD>wifi spiģ<69><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
<20><><EFBFBD><EFBFBD>detector<6F><72>λ<EFBFBD><CEBB>API<50>ӿ<EFBFBD>

View File

@@ -31,6 +31,8 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* 2023-07-15 pudding д<><D0B4>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD>ֹ<EFBFBD>û<EFBFBD>ʹ<EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
********************************************************************************************************************/
#include "IfxScuWdt.h"
@@ -41,6 +43,7 @@
flash_data_union flash_union_buffer[EEPROM_PAGE_LENGTH]; // FLASH <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD>
static uint8 flash_erase_page_flag; // FLASH <20><><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>־λ <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4> <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> У<><D0A3>FLASHҳ<48>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -86,6 +89,8 @@ void flash_erase_page (uint32 sector_num, uint32 page_num)
IfxScuWdt_setSafetyEndinit (end_init_sfty_pw);
IfxFlash_waitUnbusy(flash, IfxFlash_FlashType_D0);
flash_erase_page_flag = 1;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -131,6 +136,11 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
uint32 data_cont = 0;
end_init_sfty_pw = IfxScuWdt_getSafetyWatchdogPassword();
if(flash_erase_page_flag == 0 && flash_check(sector_num, page_num))
{
flash_erase_page(sector_num, page_num);
}
for(data_cont = 0; data_cont < len; data_cont ++)
{
data_addr = flash_addr + data_cont * FLASH_DATA_SIZE;
@@ -147,6 +157,8 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
IfxFlash_waitUnbusy(0, IfxFlash_FlashType_D0);
}
flash_erase_page_flag = 0;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -182,8 +194,6 @@ uint8 flash_write_page_from_buffer (uint32 sector_num, uint32 page_num)
{
uint32 *data_pointer = (uint32 *)flash_union_buffer;
zf_assert(EEPROM_PAGE_NUM > page_num);
flash_write_page(0, page_num, data_pointer, EEPROM_PAGE_LENGTH);
return 0;

View File

@@ -31,6 +31,7 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>
********************************************************************************************************************/
#ifndef _zf_driver_flash_h_

View File

@@ -37,15 +37,6 @@
#pragma section all "cpu0_dsram"
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#pragma section all restore<72><65><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CPU0<55><30>RAM<41><4D>
// <20><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EBB5BD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ѡ<EFBFBD>й<EFBFBD><D0B9><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>refreshˢ<68><CBA2>һ<EFBFBD><D2BB>֮<EFBFBD><D6AE><EFBFBD>ٱ<EFBFBD><D9B1><EFBFBD>
// <20><><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ر<EFBFBD><D8B1>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>properties->C/C++ Build->Setting
// Ȼ<><C8BB><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>C/C++ Compiler->Optimization->Optimization level<65><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>
// һ<><D2BB>Ĭ<EFBFBD><C4AC><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9>̶<EFBFBD><CCB6><EFBFBD>Ĭ<EFBFBD>Ͽ<EFBFBD>2<EFBFBD><32><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˴<EFBFBD><CBB4><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ2<CEAA><32><EFBFBD>Ż<EFBFBD>
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// **************************** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ****************************
int core0_main(void)
{

View File

@@ -36,6 +36,9 @@
#include "isr_config.h"
#include "isr.h"
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
//IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY)
//{

View File

@@ -1,3 +1,5 @@
V3.2.1
flash<73><68><EFBFBD><EFBFBD>д<EFBFBD><D0B4>ʱ<EFBFBD><CAB1><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰҳ<C7B0><D2B3><EFBFBD>ж<EFBFBD> <20><>ֹ<EFBFBD>û<EFBFBD><C3BB><EFBFBD>ʹ<EFBFBD>ò<EFBFBD><C3B2><EFBFBD><E6B7B6><EFBFBD><EFBFBD>flashʹ<68>ñ<EFBFBD><C3B1><EFBFBD>
V3.2.0
<20><><EFBFBD><EFBFBD>wifi spiģ<69><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
<20><><EFBFBD><EFBFBD>detector<6F><72>λ<EFBFBD><CEBB>API<50>ӿ<EFBFBD>

View File

@@ -31,6 +31,8 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* 2023-07-15 pudding д<><D0B4>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD>ֹ<EFBFBD>û<EFBFBD>ʹ<EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
********************************************************************************************************************/
#include "IfxScuWdt.h"
@@ -41,6 +43,7 @@
flash_data_union flash_union_buffer[EEPROM_PAGE_LENGTH]; // FLASH <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD>
static uint8 flash_erase_page_flag; // FLASH <20><><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>־λ <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4> <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> У<><D0A3>FLASHҳ<48>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -86,6 +89,8 @@ void flash_erase_page (uint32 sector_num, uint32 page_num)
IfxScuWdt_setSafetyEndinit (end_init_sfty_pw);
IfxFlash_waitUnbusy(flash, IfxFlash_FlashType_D0);
flash_erase_page_flag = 1;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -131,6 +136,11 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
uint32 data_cont = 0;
end_init_sfty_pw = IfxScuWdt_getSafetyWatchdogPassword();
if(flash_erase_page_flag == 0 && flash_check(sector_num, page_num))
{
flash_erase_page(sector_num, page_num);
}
for(data_cont = 0; data_cont < len; data_cont ++)
{
data_addr = flash_addr + data_cont * FLASH_DATA_SIZE;
@@ -147,6 +157,8 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
IfxFlash_waitUnbusy(0, IfxFlash_FlashType_D0);
}
flash_erase_page_flag = 0;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -182,8 +194,6 @@ uint8 flash_write_page_from_buffer (uint32 sector_num, uint32 page_num)
{
uint32 *data_pointer = (uint32 *)flash_union_buffer;
zf_assert(EEPROM_PAGE_NUM > page_num);
flash_write_page(0, page_num, data_pointer, EEPROM_PAGE_LENGTH);
return 0;

View File

@@ -31,6 +31,7 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>
********************************************************************************************************************/
#ifndef _zf_driver_flash_h_

View File

@@ -36,15 +36,6 @@
#pragma section all "cpu0_dsram"
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#pragma section all restore<72><65><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CPU0<55><30>RAM<41><4D>
// <20><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EBB5BD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ѡ<EFBFBD>й<EFBFBD><D0B9><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>refreshˢ<68><CBA2>һ<EFBFBD><D2BB>֮<EFBFBD><D6AE><EFBFBD>ٱ<EFBFBD><D9B1><EFBFBD>
// <20><><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ر<EFBFBD><D8B1>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>properties->C/C++ Build->Setting
// Ȼ<><C8BB><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>C/C++ Compiler->Optimization->Optimization level<65><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>
// һ<><D2BB>Ĭ<EFBFBD><C4AC><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9>̶<EFBFBD><CCB6><EFBFBD>Ĭ<EFBFBD>Ͽ<EFBFBD>2<EFBFBD><32><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˴<EFBFBD><CBB4><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ2<CEAA><32><EFBFBD>Ż<EFBFBD>
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// *************************** <20><><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> ***********************
// <20><><EFBFBD>İ<EFBFBD><C4B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7BCB4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

View File

@@ -36,6 +36,9 @@
#include "isr_config.h"
#include "isr.h"
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY)
{

View File

@@ -1,3 +1,5 @@
V3.2.1
flash<73><68><EFBFBD><EFBFBD>д<EFBFBD><D0B4>ʱ<EFBFBD><CAB1><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰҳ<C7B0><D2B3><EFBFBD>ж<EFBFBD> <20><>ֹ<EFBFBD>û<EFBFBD><C3BB><EFBFBD>ʹ<EFBFBD>ò<EFBFBD><C3B2><EFBFBD><E6B7B6><EFBFBD><EFBFBD>flashʹ<68>ñ<EFBFBD><C3B1><EFBFBD>
V3.2.0
<20><><EFBFBD><EFBFBD>wifi spiģ<69><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
<20><><EFBFBD><EFBFBD>detector<6F><72>λ<EFBFBD><CEBB>API<50>ӿ<EFBFBD>

View File

@@ -31,6 +31,8 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* 2023-07-15 pudding д<><D0B4>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD>ֹ<EFBFBD>û<EFBFBD>ʹ<EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
********************************************************************************************************************/
#include "IfxScuWdt.h"
@@ -41,6 +43,7 @@
flash_data_union flash_union_buffer[EEPROM_PAGE_LENGTH]; // FLASH <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD>
static uint8 flash_erase_page_flag; // FLASH <20><><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>־λ <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4> <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> У<><D0A3>FLASHҳ<48>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -86,6 +89,8 @@ void flash_erase_page (uint32 sector_num, uint32 page_num)
IfxScuWdt_setSafetyEndinit (end_init_sfty_pw);
IfxFlash_waitUnbusy(flash, IfxFlash_FlashType_D0);
flash_erase_page_flag = 1;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -131,6 +136,11 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
uint32 data_cont = 0;
end_init_sfty_pw = IfxScuWdt_getSafetyWatchdogPassword();
if(flash_erase_page_flag == 0 && flash_check(sector_num, page_num))
{
flash_erase_page(sector_num, page_num);
}
for(data_cont = 0; data_cont < len; data_cont ++)
{
data_addr = flash_addr + data_cont * FLASH_DATA_SIZE;
@@ -147,6 +157,8 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
IfxFlash_waitUnbusy(0, IfxFlash_FlashType_D0);
}
flash_erase_page_flag = 0;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -182,8 +194,6 @@ uint8 flash_write_page_from_buffer (uint32 sector_num, uint32 page_num)
{
uint32 *data_pointer = (uint32 *)flash_union_buffer;
zf_assert(EEPROM_PAGE_NUM > page_num);
flash_write_page(0, page_num, data_pointer, EEPROM_PAGE_LENGTH);
return 0;

View File

@@ -31,6 +31,7 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>
********************************************************************************************************************/
#ifndef _zf_driver_flash_h_

View File

@@ -34,14 +34,6 @@
********************************************************************************************************************/
#include "zf_common_headfile.h"
// <20><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EBB5BD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ѡ<EFBFBD>й<EFBFBD><D0B9><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>refreshˢ<68><CBA2>һ<EFBFBD><D2BB>֮<EFBFBD><D6AE><EFBFBD>ٱ<EFBFBD><D9B1><EFBFBD>
// <20><><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ر<EFBFBD><D8B1>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>properties->C/C++ Build->Setting
// Ȼ<><C8BB><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>C/C++ Compiler->Optimization->Optimization level<65><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>
// һ<><D2BB>Ĭ<EFBFBD><C4AC><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9>̶<EFBFBD><CCB6><EFBFBD>Ĭ<EFBFBD>Ͽ<EFBFBD>2<EFBFBD><32><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˴<EFBFBD><CBB4><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ2<CEAA><32><EFBFBD>Ż<EFBFBD>
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// *************************** <20><><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> ***********************
// <20><><EFBFBD>İ<EFBFBD><C4B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7BCB4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

View File

@@ -36,6 +36,9 @@
#include "isr_config.h"
#include "isr.h"
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY)
{

View File

@@ -1,3 +1,5 @@
V3.2.1
flash<73><68><EFBFBD><EFBFBD>д<EFBFBD><D0B4>ʱ<EFBFBD><CAB1><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰҳ<C7B0><D2B3><EFBFBD>ж<EFBFBD> <20><>ֹ<EFBFBD>û<EFBFBD><C3BB><EFBFBD>ʹ<EFBFBD>ò<EFBFBD><C3B2><EFBFBD><E6B7B6><EFBFBD><EFBFBD>flashʹ<68>ñ<EFBFBD><C3B1><EFBFBD>
V3.2.0
<20><><EFBFBD><EFBFBD>wifi spiģ<69><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
<20><><EFBFBD><EFBFBD>detector<6F><72>λ<EFBFBD><CEBB>API<50>ӿ<EFBFBD>

View File

@@ -31,6 +31,8 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* 2023-07-15 pudding д<><D0B4>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD>ֹ<EFBFBD>û<EFBFBD>ʹ<EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
********************************************************************************************************************/
#include "IfxScuWdt.h"
@@ -41,6 +43,7 @@
flash_data_union flash_union_buffer[EEPROM_PAGE_LENGTH]; // FLASH <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD>
static uint8 flash_erase_page_flag; // FLASH <20><><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>־λ <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4> <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> У<><D0A3>FLASHҳ<48>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -86,6 +89,8 @@ void flash_erase_page (uint32 sector_num, uint32 page_num)
IfxScuWdt_setSafetyEndinit (end_init_sfty_pw);
IfxFlash_waitUnbusy(flash, IfxFlash_FlashType_D0);
flash_erase_page_flag = 1;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -131,6 +136,11 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
uint32 data_cont = 0;
end_init_sfty_pw = IfxScuWdt_getSafetyWatchdogPassword();
if(flash_erase_page_flag == 0 && flash_check(sector_num, page_num))
{
flash_erase_page(sector_num, page_num);
}
for(data_cont = 0; data_cont < len; data_cont ++)
{
data_addr = flash_addr + data_cont * FLASH_DATA_SIZE;
@@ -147,6 +157,8 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
IfxFlash_waitUnbusy(0, IfxFlash_FlashType_D0);
}
flash_erase_page_flag = 0;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -182,8 +194,6 @@ uint8 flash_write_page_from_buffer (uint32 sector_num, uint32 page_num)
{
uint32 *data_pointer = (uint32 *)flash_union_buffer;
zf_assert(EEPROM_PAGE_NUM > page_num);
flash_write_page(0, page_num, data_pointer, EEPROM_PAGE_LENGTH);
return 0;

View File

@@ -31,6 +31,7 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>
********************************************************************************************************************/
#ifndef _zf_driver_flash_h_

View File

@@ -46,13 +46,9 @@ cfloat32 fft_in [SIZE_N];
cfloat32 fft_out[SIZE_N];
uint32 use_time;
// <20><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EBB5BD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ѡ<EFBFBD>й<EFBFBD><D0B9><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>refreshˢ<68><CBA2>һ<EFBFBD><D2BB>֮<EFBFBD><D6AE><EFBFBD>ٱ<EFBFBD><D9B1><EFBFBD>
// <20><><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ر<EFBFBD><D8B1>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>properties->C/C++ Build->Setting
// Ȼ<><C8BB><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>C/C++ Compiler->Optimization->Optimization level<65><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>
// һ<><D2BB>Ĭ<EFBFBD><C4AC><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9>̶<EFBFBD><CCB6><EFBFBD>Ĭ<EFBFBD>Ͽ<EFBFBD>2<EFBFBD><32><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˴<EFBFBD><CBB4><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ2<CEAA><32><EFBFBD>Ż<EFBFBD>
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
float x1, x2;

View File

@@ -36,6 +36,9 @@
#include "isr_config.h"
#include "isr.h"
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY)
{

View File

@@ -1,3 +1,5 @@
V3.2.1
flash<73><68><EFBFBD><EFBFBD>д<EFBFBD><D0B4>ʱ<EFBFBD><CAB1><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰҳ<C7B0><D2B3><EFBFBD>ж<EFBFBD> <20><>ֹ<EFBFBD>û<EFBFBD><C3BB><EFBFBD>ʹ<EFBFBD>ò<EFBFBD><C3B2><EFBFBD><E6B7B6><EFBFBD><EFBFBD>flashʹ<68>ñ<EFBFBD><C3B1><EFBFBD>
V3.2.0
<20><><EFBFBD><EFBFBD>wifi spiģ<69><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
<20><><EFBFBD><EFBFBD>detector<6F><72>λ<EFBFBD><CEBB>API<50>ӿ<EFBFBD>

View File

@@ -31,6 +31,8 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* 2023-07-15 pudding д<><D0B4>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD>ֹ<EFBFBD>û<EFBFBD>ʹ<EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
********************************************************************************************************************/
#include "IfxScuWdt.h"
@@ -41,6 +43,7 @@
flash_data_union flash_union_buffer[EEPROM_PAGE_LENGTH]; // FLASH <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD>
static uint8 flash_erase_page_flag; // FLASH <20><><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>־λ <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4> <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> У<><D0A3>FLASHҳ<48>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -86,6 +89,8 @@ void flash_erase_page (uint32 sector_num, uint32 page_num)
IfxScuWdt_setSafetyEndinit (end_init_sfty_pw);
IfxFlash_waitUnbusy(flash, IfxFlash_FlashType_D0);
flash_erase_page_flag = 1;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -131,6 +136,11 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
uint32 data_cont = 0;
end_init_sfty_pw = IfxScuWdt_getSafetyWatchdogPassword();
if(flash_erase_page_flag == 0 && flash_check(sector_num, page_num))
{
flash_erase_page(sector_num, page_num);
}
for(data_cont = 0; data_cont < len; data_cont ++)
{
data_addr = flash_addr + data_cont * FLASH_DATA_SIZE;
@@ -147,6 +157,8 @@ void flash_write_page (uint32 sector_num, uint32 page_num, const uint32 *buf, ui
IfxFlash_waitUnbusy(0, IfxFlash_FlashType_D0);
}
flash_erase_page_flag = 0;
}
//-------------------------------------------------------------------------------------------------------------------
@@ -182,8 +194,6 @@ uint8 flash_write_page_from_buffer (uint32 sector_num, uint32 page_num)
{
uint32 *data_pointer = (uint32 *)flash_union_buffer;
zf_assert(EEPROM_PAGE_NUM > page_num);
flash_write_page(0, page_num, data_pointer, EEPROM_PAGE_LENGTH);
return 0;

View File

@@ -31,6 +31,7 @@
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2022-09-15 pudding first version
* 2023-07-14 pudding <20>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>
********************************************************************************************************************/
#ifndef _zf_driver_flash_h_

View File

@@ -36,18 +36,9 @@
#pragma section all "cpu0_dsram"
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#pragma section all restore<72><65><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CPU0<55><30>RAM<41><4D>
// <20><><EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD>ѡ<EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>refreshˢ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD>ٱ<EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD>Ĭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ر<EFBFBD><EFBFBD>Ż<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>properties->C/C++ Build->Setting
// Ȼ<><C8BB><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>C/C++ Compiler->Optimization->Optimization level<65><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>ȼ<EFBFBD>
// һ<><D2BB>Ĭ<EFBFBD><C4AC><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9>̶<EFBFBD><CCB6><EFBFBD>Ĭ<EFBFBD>Ͽ<EFBFBD>2<EFBFBD><32><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˴<EFBFBD><CBB4><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ2<CEAA><32><EFBFBD>Ż<EFBFBD>
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>ֲ<EFBFBD>ÿչ<C3BF><D5B9><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>ֲ<EFBFBD>ÿչ<C3BF><D5B9><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>ֲ<EFBFBD>ÿչ<C3BF><D5B9><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>չ<EFBFBD><D5B9><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD>߲<EFBFBD><DFB2>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD>߲<EFBFBD><EFBFBD>Ը<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD>߲<EFBFBD><EFBFBD>Ը<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// **************************** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ****************************

View File

@@ -36,6 +36,9 @@
#include "isr_config.h"
#include "isr.h"
// <20><><EFBFBD><EFBFBD>TCϵ<43><CFB5>Ĭ<EFBFBD><C4AC><EFBFBD>Dz<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD>׵ģ<D7B5>ϣ<EFBFBD><CFA3>֧<EFBFBD><D6A7><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʹ<EFBFBD><CAB9> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
// <20>򵥵<EFBFBD>˵ʵ<CBB5><CAB5><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>жϺ<D0B6>TCϵ<43>е<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> interrupt_global_disable(); <20><><EFBFBD>ܾ<EFBFBD><DCBE><EFBFBD>Ӧ<EFBFBD>κε<CEBA><CEB5>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> interrupt_global_enable(0); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5><EFBFBD>Ӧ<EFBFBD><D3A6>
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY)
{