更新开发板配置,更新版本号,添加 k_kit.c 超时检测
This commit is contained in:
@@ -10,8 +10,8 @@ CHIP_NAME=esp32c2
|
|||||||
ADDITIONAL=_evb
|
ADDITIONAL=_evb
|
||||||
|
|
||||||
# 文件名识别版本号(需要与实际版本严格对应)
|
# 文件名识别版本号(需要与实际版本严格对应)
|
||||||
FW_VERSION_MAIN=1
|
FW_VERSION_MAIN=0
|
||||||
FW_VERSION_MINOR=0
|
FW_VERSION_MINOR=0
|
||||||
FW_VERSION_BUILD=0
|
FW_VERSION_BUILD=1
|
||||||
|
|
||||||
. .sub-release.sh
|
. .sub-release.sh
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ CHIP_NAME=esp32c3
|
|||||||
ADDITIONAL=_evb
|
ADDITIONAL=_evb
|
||||||
|
|
||||||
# 文件名识别版本号(需要与实际版本严格对应)
|
# 文件名识别版本号(需要与实际版本严格对应)
|
||||||
FW_VERSION_MAIN=1
|
FW_VERSION_MAIN=0
|
||||||
FW_VERSION_MINOR=0
|
FW_VERSION_MINOR=0
|
||||||
FW_VERSION_BUILD=0
|
FW_VERSION_BUILD=1
|
||||||
|
|
||||||
. .sub-release.sh
|
. .sub-release.sh
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ CHIP_NAME=esp32s3
|
|||||||
ADDITIONAL=_evb
|
ADDITIONAL=_evb
|
||||||
|
|
||||||
# 文件名识别版本号(需要与实际版本严格对应)
|
# 文件名识别版本号(需要与实际版本严格对应)
|
||||||
FW_VERSION_MAIN=1
|
FW_VERSION_MAIN=0
|
||||||
FW_VERSION_MINOR=0
|
FW_VERSION_MINOR=0
|
||||||
FW_VERSION_BUILD=0
|
FW_VERSION_BUILD=1
|
||||||
|
|
||||||
. .sub-release.sh
|
. .sub-release.sh
|
||||||
|
|||||||
@@ -1,3 +1,15 @@
|
|||||||
|
/**
|
||||||
|
* @brief 官方开发板 devkit_esp32s3 的配置
|
||||||
|
*
|
||||||
|
* BOOT: IO0, 激活电平: 0
|
||||||
|
* RGB: IO48
|
||||||
|
* USB_UART: /dev/ttyUSB0
|
||||||
|
* U0RXD: IO44
|
||||||
|
* U0TXD: IO43
|
||||||
|
* USB_DM: IO19
|
||||||
|
* USB_DP: IO20
|
||||||
|
*/
|
||||||
|
|
||||||
#if (CONFIG_BOARD_NAME_DEVKIT_ESP32S3)
|
#if (CONFIG_BOARD_NAME_DEVKIT_ESP32S3)
|
||||||
|
|
||||||
#define CONFIG_IDF_TARGET "esp32s3" /* 警告:请使用命令 idf.py set-target <参数> 选择对应的平台 */
|
#define CONFIG_IDF_TARGET "esp32s3" /* 警告:请使用命令 idf.py set-target <参数> 选择对应的平台 */
|
||||||
@@ -27,9 +39,9 @@ static cfg_board_t const s_cfg_board_default = {
|
|||||||
|
|
||||||
.led_spi = {
|
.led_spi = {
|
||||||
.spi_id = SPI2_HOST, // 模拟 PWM 用的 SPI
|
.spi_id = SPI2_HOST, // 模拟 PWM 用的 SPI
|
||||||
.strip_pin = {14, ~0, ~0, ~0}, // 用于驱动灯带的输出引脚
|
.strip_pin = {~0, ~0, ~0, ~0}, // 用于驱动灯带的输出引脚
|
||||||
.bat_led_pin = {~0, 0}, // 用于指示电池电量的 LED 灯,[0]为IO非 ~0 表示有效,[1]为电量灯珠数目
|
.bat_led_pin = {47, 4}, // 用于指示电池电量的 LED 灯,[0]为IO非 ~0 表示有效,[1]为电量灯珠数目
|
||||||
.rf_status_pin = ~0, // 板上用于指示状态的 RGB 灯珠,非 ~0 表示有效
|
.rf_status_pin = 48, // 板上用于指示状态的 RGB 灯珠,非 ~0 表示有效
|
||||||
},
|
},
|
||||||
|
|
||||||
.fc_port_type = CFG_BOARD_FC_PORT_UART, // 用于与飞控通讯的数据接口
|
.fc_port_type = CFG_BOARD_FC_PORT_UART, // 用于与飞控通讯的数据接口
|
||||||
@@ -46,20 +58,20 @@ static cfg_board_t const s_cfg_board_default = {
|
|||||||
.usb_dp = 20,
|
.usb_dp = 20,
|
||||||
},
|
},
|
||||||
|
|
||||||
.detect_usb = {.pin = 36, .en_lev = 1}, // 输入检测:检测飞控 USB 插入,有效电平为插入电平
|
.detect_usb = {.pin = ~0, .en_lev = 1}, // 输入检测:检测飞控 USB 插入,有效电平为插入电平
|
||||||
|
|
||||||
.key_reset = {.pin = ~0, .en_lev = 0}, // 按键检测:开机时长安 10 秒恢复出厂设置的按键,有效电平为按下电平
|
.key_reset = {.pin = ~0, .en_lev = 0}, // 按键检测:开机时长安 10 秒恢复出厂设置的按键,有效电平为按下电平
|
||||||
.key_led_strip_switch = {.pin = ~0, .en_lev = 0}, // 按键检测:切换灯带效果,适用于灯带固件,有效电平为按下电平
|
.key_led_strip_switch = {.pin = ~0, .en_lev = 0}, // 按键检测:切换灯带效果,适用于灯带固件,有效电平为按下电平
|
||||||
.key_led_color_switch = {.pin = ~0, .en_lev = 1}, // 按键检测:切换灯带颜色,适用于竞速灯带切换颜色,有效电平为按下电平
|
.key_led_color_switch = {.pin = ~0, .en_lev = 1}, // 按键检测:切换灯带颜色,适用于竞速灯带切换颜色,有效电平为按下电平
|
||||||
.key_rf_switch = {.pin = ~0, .en_lev = 0}, // 按键检测:切换射频数据接口,适用于固定翼无线 USB 板,有效电平为按下电平
|
.key_rf_switch = {.pin = 0, .en_lev = 0}, // 按键检测:切换射频数据接口,适用于固定翼无线 USB 板,有效电平为按下电平
|
||||||
.key_9v_switch = {.pin = ~0, .en_lev = 0}, // 按键检测:9伏电源开关控制,适用 F7V4, 有效电平为按下电平
|
.key_9v_switch = {.pin = ~0, .en_lev = 0}, // 按键检测:9伏电源开关控制,适用 F7V4, 有效电平为按下电平
|
||||||
|
|
||||||
.sw_led_strip = {.pin = 2, .en_lev = 1}, // 灯带控制主机的切换控制引脚,有效电平为切换为本模块控制的电平
|
.sw_led_strip = {.pin = ~0, .en_lev = 1}, // 灯带控制主机的切换控制引脚,有效电平为切换为本模块控制的电平
|
||||||
.sw_pwr_9v = {.pin = 11, .en_lev = 1}, // 9V 电源输出控制引脚,有效电平为打开 9V 电源的电平
|
.sw_pwr_9v = {.pin = ~0, .en_lev = 1}, // 9V 电源输出控制引脚,有效电平为打开 9V 电源的电平
|
||||||
.sw_usb = {.pin = 5, .en_lev = 1}, // USB 切换的模拟开关,有效电平为切换为本模块控制的电平
|
.sw_usb = {.pin = ~0, .en_lev = 1}, // USB 切换的模拟开关,有效电平为切换为本模块控制的电平
|
||||||
|
|
||||||
.led_rf_status = {.pin = 3, .en_lev = 0}, // 射频指示灯,单色 LED. 引脚号值为 ~0 时,射频连接状态通过灯带展示,值为非 ~0 时,射频连接状态通过这个引脚控制的 LED 展示,有效电平为点亮电平
|
.led_rf_status = {.pin = ~0, .en_lev = 0}, // 射频指示灯,单色 LED. 引脚号值为 ~0 时,射频连接状态通过灯带展示,值为非 ~0 时,射频连接状态通过这个引脚控制的 LED 展示,有效电平为点亮电平
|
||||||
.led_strip_on = {.pin = 4, .en_lev = 0}, // 灯带控制主机切换的指示灯,有效电平为点亮电平
|
.led_strip_on = {.pin = 0, .en_lev = 0}, // 灯带控制主机切换的指示灯,有效电平为点亮电平
|
||||||
.led_bat = {
|
.led_bat = {
|
||||||
// 电池电量指示灯,有效电平为点亮电平
|
// 电池电量指示灯,有效电平为点亮电平
|
||||||
[0] = {.pin = 33, .en_lev = 0},
|
[0] = {.pin = 33, .en_lev = 0},
|
||||||
|
|||||||
@@ -11,9 +11,9 @@
|
|||||||
#define BOARD_CONFIG_DATA_VER 0x0101 /* 对应 cfg_board_t::version */
|
#define BOARD_CONFIG_DATA_VER 0x0101 /* 对应 cfg_board_t::version */
|
||||||
#define APP_CONFIG_DATA_VER 0 /* 对应 cfg_app_t::version */
|
#define APP_CONFIG_DATA_VER 0 /* 对应 cfg_app_t::version */
|
||||||
|
|
||||||
#define FW_VERSION_MAIN 1
|
#define FW_VERSION_MAIN 0
|
||||||
#define FW_VERSION_MINOR 0
|
#define FW_VERSION_MINOR 0
|
||||||
#define FW_VERSION_BUILD 0
|
#define FW_VERSION_BUILD 1
|
||||||
|
|
||||||
#elif (CONFIG_PRODUCT_ID_SBDEMO)
|
#elif (CONFIG_PRODUCT_ID_SBDEMO)
|
||||||
|
|
||||||
|
|||||||
@@ -270,6 +270,8 @@ typedef struct
|
|||||||
size_t priority_tab;
|
size_t priority_tab;
|
||||||
k_work_t *curr_work;
|
k_work_t *curr_work;
|
||||||
k_work_handle_t *yield_work;
|
k_work_handle_t *yield_work;
|
||||||
|
k_work_handle_t *sleep_work;
|
||||||
|
k_work_handle_t *sleep_work_prev;
|
||||||
k_work_q_fn work_q_resume;
|
k_work_q_fn work_q_resume;
|
||||||
void *work_q_resume_arg;
|
void *work_q_resume_arg;
|
||||||
k_work_fn hook_entry;
|
k_work_fn hook_entry;
|
||||||
@@ -2053,6 +2055,7 @@ void k_work_sleep(k_tick_t delay_ticks)
|
|||||||
{
|
{
|
||||||
k_work_q_t *work_q_handle;
|
k_work_q_t *work_q_handle;
|
||||||
k_work_t *work_handle;
|
k_work_t *work_handle;
|
||||||
|
k_work_handle_t *sleep_work;
|
||||||
k_tick_t sys_time;
|
k_tick_t sys_time;
|
||||||
|
|
||||||
_ASSERT_FALSE(s_kit_init_struct.malloc == NULL, "Never use 'k_init()' to initialize");
|
_ASSERT_FALSE(s_kit_init_struct.malloc == NULL, "Never use 'k_init()' to initialize");
|
||||||
@@ -2066,6 +2069,31 @@ void k_work_sleep(k_tick_t delay_ticks)
|
|||||||
sys_time = _K_PORT->get_sys_ticks();
|
sys_time = _K_PORT->get_sys_ticks();
|
||||||
_WORK->timeout = sys_time + delay_ticks;
|
_WORK->timeout = sys_time + delay_ticks;
|
||||||
|
|
||||||
|
sleep_work = _WORK_Q->sleep_work;
|
||||||
|
_WORK_Q->sleep_work = _WORK;
|
||||||
|
if (sleep_work != NULL)
|
||||||
|
{
|
||||||
|
if ((int)(_WORK->timeout - sleep_work->timeout) > 0 &&
|
||||||
|
_WORK_Q->sleep_work_prev != sleep_work)
|
||||||
|
{
|
||||||
|
_WORK_Q->sleep_work_prev = sleep_work;
|
||||||
|
// 当前任务的超时时间晚于前个任务的超时时间,上个任务将被阻塞
|
||||||
|
#if (CONFIG_K_KIT_LOG_ON)
|
||||||
|
_DBG_WRN("Work timeout conflict: previous task will be blocked %d ticks, "
|
||||||
|
"current work '%s', previous work '%s'",
|
||||||
|
(int)(_WORK->timeout - sleep_work->timeout),
|
||||||
|
_WORK->work_handle->name,
|
||||||
|
sleep_work->work_handle->name);
|
||||||
|
#else
|
||||||
|
_DBG_WRN("Work timeout conflict: previous task will be blocked %d ticks, "
|
||||||
|
"current work 0x%08x, previous work 0x%08x",
|
||||||
|
(int)(_WORK->timeout - sleep_work->timeout),
|
||||||
|
(size_t)_WORK->work_route,
|
||||||
|
(size_t)sleep_work->work_route);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
_k_work_q_handler_take_event_list(&_WORK_Q->event_list, sys_time);
|
_k_work_q_handler_take_event_list(&_WORK_Q->event_list, sys_time);
|
||||||
|
|
||||||
do
|
do
|
||||||
@@ -2174,6 +2202,8 @@ void k_work_sleep(k_tick_t delay_ticks)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_WORK_Q->sleep_work = sleep_work;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user