146 lines
3.4 KiB
C
146 lines
3.4 KiB
C
#include "include.h"
|
||
|
||
//320x385 60Hz 数据量为14.784MByte
|
||
const u8 tbl_despi_clk1[] = {
|
||
[SYS_88M] = 1, //44M
|
||
[SYS_132M] = 2, //44M
|
||
[SYS_144M] = 2, //48M
|
||
#if MODE_4WIRE_8BIT
|
||
[SYS_176M] = 2, //58M 需要注意屏幕是否支持这么高的速度
|
||
#else
|
||
[SYS_176M] = 3, //44M
|
||
#endif
|
||
[SYS_192M] = 3, //48M
|
||
};
|
||
const u8 tbl_despi_clk2[] = {
|
||
[SYS_88M] = 2, //29.3M
|
||
[SYS_132M] = 4, //26.4M
|
||
[SYS_144M] = 4, //28.8M
|
||
[SYS_176M] = 2,//5, /29.3M
|
||
[SYS_192M] = 2,//6 //27.4M
|
||
};
|
||
|
||
//设置DESPI CLK接口
|
||
void sys_set_despi_baud_hook(u32 sys_clk)
|
||
{
|
||
sys_cb.despi_baud1 = tbl_despi_clk1[sys_clk];
|
||
sys_cb.despi_baud2 = tbl_despi_clk2[sys_clk];
|
||
sys_cb.despi_baud = sys_cb.te_mode ? sys_cb.despi_baud1 : sys_cb.despi_baud2;
|
||
DESPIBAUD = sys_cb.despi_baud;
|
||
}
|
||
|
||
const uint8_t *bt_rf_get_inq_param(void)
|
||
{
|
||
return NULL;
|
||
}
|
||
|
||
u8 get_chip_package(void)
|
||
{
|
||
return 0;
|
||
}
|
||
|
||
const uint8_t *bt_rf_get_param(void)
|
||
{
|
||
return (const uint8_t *)&xcfg_cb.rf_pa_gain;
|
||
}
|
||
|
||
//正常启动Main函数
|
||
int main(void)
|
||
{
|
||
u32 rst_reason, rtccon10;
|
||
|
||
rst_reason = LVDCON;
|
||
rtccon10 = RTCCON10;
|
||
|
||
bsp_sys_init();
|
||
|
||
printf("Hello AB5680: %08x\n", rst_reason);
|
||
if (rst_reason & BIT(24))
|
||
{
|
||
printf("SW reset\n");
|
||
}
|
||
else if (rst_reason & BIT(19))
|
||
{
|
||
if (rtccon10 & BIT(10))
|
||
{
|
||
printf("WKO10S reset\n");
|
||
clear_allData();
|
||
#if USE_APP_TYPE
|
||
app_platform_init();
|
||
#endif
|
||
bsp_vbat_percent_init();
|
||
bt_nor_delete_link_info();
|
||
/* 心率传感器初始化 */
|
||
bsp_sensor_hr_init();
|
||
bsp_sensor_hr_stop();
|
||
}
|
||
else
|
||
{
|
||
// printf("RTC_WDT reset\n");
|
||
}
|
||
}
|
||
else if (rst_reason & BIT(18))
|
||
{
|
||
// printf("WKUP reset\n");
|
||
}
|
||
else if (rst_reason & BIT(17))
|
||
{
|
||
// printf("VUSB reset\n");
|
||
}
|
||
else if (rst_reason & BIT(16))
|
||
{
|
||
// printf("WDT reset\n");
|
||
}
|
||
|
||
printf("cm_read8(BLE_OTA_FLAG)--%d\n", cm_read8(BLE_OTA_FLAG));
|
||
// 长按PP/POWER开机
|
||
if (cm_read8(BLE_OTA_FLAG) == 1)
|
||
{
|
||
u8 ble_ota = 0;
|
||
cm_write((u8 *)&ble_ota, BLE_OTA_FLAG, 1);
|
||
#if defined(TJD_SET_PUSH_DIAL_FLAH_TO_BUILT_IN_DIAL_FLASH)
|
||
sys_cb.ble_dial_updated = 0;
|
||
param_dial_update_write();
|
||
#endif
|
||
cm_clear(0);
|
||
cm_sync();
|
||
func_pwroff(1);
|
||
}
|
||
|
||
func_cb.sta = FUN_POWER_ON_LOGO;
|
||
if (bsp_charge_sta_get() > 0) {
|
||
func_cb.sta = FUNC_CHARGE;
|
||
}
|
||
func_run();
|
||
return 0;
|
||
}
|
||
|
||
//升级完成
|
||
void update_complete(int mode)
|
||
{
|
||
// printf("update_complete mode = %d\n", mode);
|
||
|
||
bsp_update_init();
|
||
|
||
if (mode == 0) {
|
||
WDT_DIS();
|
||
while (1)
|
||
;
|
||
}
|
||
|
||
user_data_recovery_clear();
|
||
func_cb.sta = FUNC_PWROFF;
|
||
bsp_sys_init();
|
||
|
||
clear_allData();
|
||
bt_nor_delete_link_info();
|
||
|
||
/*写CM区必须放在bsp_sys_init()初始化函数之后,否则蓝牙盒子OTA后走这里会报错导致看门狗复位,升级失败重启*/
|
||
#if defined(TJD_SET_PUSH_DIAL_FLAH_TO_BUILT_IN_DIAL_FLASH)
|
||
sys_cb.ble_dial_updated = 0;
|
||
param_dial_update_write();
|
||
#endif
|
||
|
||
func_run();
|
||
}
|