add more flash protect for key verification

This commit is contained in:
Steven Dan
2026-04-09 18:57:24 +08:00
parent 3880b56108
commit 05a5ac80ef
4 changed files with 47 additions and 2 deletions

View File

@@ -431,6 +431,22 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
unsigned char hp_mute_path[] = "hp_mute";
unsigned char monitor_sw_path[] = "monitor_sw";
unsigned host_os;
#if DNR_ENABLE
unsigned dnr_init_flag = 0;
while (dnr_init_flag == 0)
{
GET_SHARED_GLOBAL(dnr_init_flag, g_dnr_init_flag);
asm("nop");
}
#endif
#if USE_EX3D == 1
unsigned ex3d_key_verified = 0;
while (ex3d_key_verified == 0)
{
GET_SHARED_GLOBAL(ex3d_key_verified, g_ex3d_key_verified);
asm("nop");
}
#endif
delay_milliseconds(10);
saved_mode = load_value(path);

View File

@@ -84,12 +84,18 @@ chanend_t uc_dsp_to_dnr_t1;
//chanend_t uc_dsp_to_dnr_t0;
chanend_t uc_key_to_ubm_t0;
volatile EXTERN DS_BOOL m_hThread;
extern unsigned g_dnr_init_flag;
void SetEqDataChan (chanend_t c) {
uc_eq_data = c;
}
void key_receiver(chanend_t c)
{
debug_printf("===> key_receiver\n");
#if DNR_ENABLE
while (g_dnr_init_flag == 0) {
asm("nop");
}
#endif
// tile0
// load the license key
// This function must be called before audio_ex3d_activate_key.

View File

@@ -36,6 +36,8 @@ extern uint32_t get_reference_time(void);
extern void update_eq_post_gain(void);
extern unsigned int g_eq_sample_rate;
extern unsigned g_windows_detect_done;
extern unsigned g_dnr_init_flag;
extern unsigned g_ex3d_key_verified;
#pragma unsafe arrays
void dsp_core0(void)
@@ -55,11 +57,31 @@ void dsp_core0(void)
// EQ Flash存储初始化标志
delay_milliseconds(300);
unsigned windows_detect_done;
unsigned windows_detect_done, dnr_init_flag, ex3d_key_verified;
GET_SHARED_GLOBAL(windows_detect_done, g_windows_detect_done);
while (windows_detect_done == 0) {
#if DNR_ENABLE
GET_SHARED_GLOBAL(dnr_init_flag, g_dnr_init_flag);
#endif
#if USE_EX3D
GET_SHARED_GLOBAL(ex3d_key_verified, g_ex3d_key_verified);
#endif
while ((windows_detect_done == 0)
#if DNR_ENABLE
|| (dnr_init_flag == 0)
#endif
#if USE_EX3D
|| (ex3d_key_verified == 0)
#endif
) {
asm("nop");
GET_SHARED_GLOBAL(windows_detect_done, g_windows_detect_done);
#if DNR_ENABLE
GET_SHARED_GLOBAL(dnr_init_flag, g_dnr_init_flag);
#endif
#if USE_EX3D
GET_SHARED_GLOBAL(ex3d_key_verified, g_ex3d_key_verified);
#endif
}
#if EQ_EN

View File

@@ -570,6 +570,7 @@ int main()
unsafe {
SetEqDataChan(c_eq_data);
delay_milliseconds(200);
key_sender(c_key);
for (int i = 0; i < DSP_WORKER_COUNT; i++)
uc_dsp_to_ex3d[i] = (chanend)c_dsp_to_ex3d[i];