开发板不断重启,疑似cpu问题明显

Viewed 3

一、描述你遇到的问题

从串口日志来看,系统在运行大约 16 秒后发生了 NMI(非屏蔽中断) 并反复重启。直接原因有两个:

CPU 占用率过高,空闲任务无法运行
MotorTask 和 EncoderTask 的 CPU 占用率分别达到 49.8% 和 49.6%,合计约 99.4%,系统几乎没有空闲时间,导致看门狗无法在 IDLE 任务中被喂狗,从而超时复位。

编码器中断或打印过于频繁
EncoderTask 每 500ms 打印一次电平值使用的版本是 500ms,而 MotorTask 每 2s 打印一次心跳,但由于串口打印本身是阻塞操作,大量打印会严重占用 CPU。

此外,崩溃时的异常 mcause:0x8000000c 通常与总线错误或非法访问有关,可能由栈溢出或中断中访问了不安全的内存导致。尽管栈剩余空间尚有 1KB 左右,但在中断频繁触发时,栈使用量会瞬时增加,仍有可能溢出。

二、你具体做的所有步骤结果截图

#include "pinctrl.h"
#include "gpio.h"
#include "pwm.h"
#include "osal_debug.h"
#include "cmsis_os2.h"
#include "app_init.h"
#include "tcxo.h"
#include <stddef.h>

/* ----- 引脚定义 ----- */
// 电机A (左轮)
#define PWMA_PIN 0
#define AIN1_PIN 10
#define AIN2_PIN 9
// 电机B (右轮)
#define PWMB_PIN 1
#define BIN1_PIN 11
#define BIN2_PIN 12

// 编码器引脚
#define LEFT_ENCODER_A_PIN 2
#define LEFT_ENCODER_B_PIN 3
#define RIGHT_ENCODER_A_PIN 4
#define RIGHT_ENCODER_B_PIN 5

/* ----- PWM配置 ----- */
#define PWM_CHANNEL_A 0
#define PWM_CHANNEL_B 1
#define PWM_GROUP_ID 0

pwm_config_t pwm_cfg_a = { 100, 400, 0, 0, false };
pwm_config_t pwm_cfg_b = { 100, 400, 0, 0, false };

/* ----- 任务参数(栈空间已加大)----- */
#define MOTOR_TASK_STACK_SIZE 0x1000
#define MOTOR_TASK_PRIO (osPriority_t)(osPriorityNormal)
#define ENCODER_TASK_STACK_SIZE 0x2000 // 增大到 8KB
#define ENCODER_TASK_PRIO (osPriority_t)(osPriorityAboveNormal)

/* ----- 编码器参数 ----- */
#define PULSES_PER_REVOLUTION 11
#define WHEEL_DIAMETER_CM 6.5f
#define PI 3.14159f
#define WHEEL_CIRCUMFERENCE (PI * WHEEL_DIAMETER_CM)
#define SPEED_CALC_INTERVAL_MS 200 // 计算周期改为200ms,降低CPU占用

/* ----- 编码器数据结构 ----- */
typedef struct {
volatile int32_t pulse_count; // 累计脉冲(正转++,反转--)
volatile uint8_t last_a_state; // 上一次A相电平
volatile uint8_t last_b_state; // 上一次B相电平
int32_t last_pulse_count; // 上一次计算速度时的脉冲数
float speed_cm_s; // 线速度(厘米/秒)
float speed_rpm; // 转速(转/分钟)
} encoder_data_t;

static encoder_data_t g_left_encoder = {0};
static encoder_data_t g_right_encoder = {0};

/* ----- 编码器中断服务函数(参数类型已修正)----- */
static void left_encoder_isr(pin_t pin, uintptr_t param)
{
(void)pin;
(void)param;
uint8_t a_state = uapi_gpio_get_val(LEFT_ENCODER_A_PIN);
uint8_t b_state = uapi_gpio_get_val(LEFT_ENCODER_B_PIN);

if (a_state != g_left_encoder.last_a_state) {
    if (a_state == GPIO_LEVEL_HIGH) {
        g_left_encoder.pulse_count += (b_state == GPIO_LEVEL_LOW) ? 1 : -1;
    } else {
        g_left_encoder.pulse_count += (b_state == GPIO_LEVEL_HIGH) ? 1 : -1;
    }
    g_left_encoder.last_a_state = a_state;
}
g_left_encoder.last_b_state = b_state;

}

static void right_encoder_isr(pin_t pin, uintptr_t param)
{
(void)pin;
(void)param;
uint8_t a_state = uapi_gpio_get_val(RIGHT_ENCODER_A_PIN);
uint8_t b_state = uapi_gpio_get_val(RIGHT_ENCODER_B_PIN);

if (a_state != g_right_encoder.last_a_state) {
    if (a_state == GPIO_LEVEL_HIGH) {
        g_right_encoder.pulse_count += (b_state == GPIO_LEVEL_LOW) ? 1 : -1;
    } else {
        g_right_encoder.pulse_count += (b_state == GPIO_LEVEL_HIGH) ? 1 : -1;
    }
    g_right_encoder.last_a_state = a_state;
}
g_right_encoder.last_b_state = b_state;

}

/* ----- 编码器初始化(使用正确API)----- */
static void encoder_init(void)
{
// 配置引脚为GPIO输入模式
uapi_pin_set_mode(LEFT_ENCODER_A_PIN, PIN_MODE_0);
uapi_pin_set_mode(LEFT_ENCODER_B_PIN, PIN_MODE_0);
uapi_pin_set_mode(RIGHT_ENCODER_A_PIN, PIN_MODE_0);
uapi_pin_set_mode(RIGHT_ENCODER_B_PIN, PIN_MODE_0);

uapi_gpio_set_dir(LEFT_ENCODER_A_PIN, GPIO_DIRECTION_INPUT);
uapi_gpio_set_dir(LEFT_ENCODER_B_PIN, GPIO_DIRECTION_INPUT);
uapi_gpio_set_dir(RIGHT_ENCODER_A_PIN, GPIO_DIRECTION_INPUT);
uapi_gpio_set_dir(RIGHT_ENCODER_B_PIN, GPIO_DIRECTION_INPUT);

// 记录初始电平
g_left_encoder.last_a_state = uapi_gpio_get_val(LEFT_ENCODER_A_PIN);
g_left_encoder.last_b_state = uapi_gpio_get_val(LEFT_ENCODER_B_PIN);
g_right_encoder.last_a_state = uapi_gpio_get_val(RIGHT_ENCODER_A_PIN);
g_right_encoder.last_b_state = uapi_gpio_get_val(RIGHT_ENCODER_B_PIN);

// 注册中断(使用双边沿触发,以获得4倍频精度)
uapi_gpio_register_isr_func(LEFT_ENCODER_A_PIN, GPIO_INTERRUPT_RISING_EDGE, left_encoder_isr);
uapi_gpio_register_isr_func(LEFT_ENCODER_B_PIN, GPIO_INTERRUPT_RISING_EDGE, left_encoder_isr);
uapi_gpio_register_isr_func(RIGHT_ENCODER_A_PIN, GPIO_INTERRUPT_RISING_EDGE, right_encoder_isr);
uapi_gpio_register_isr_func(RIGHT_ENCODER_B_PIN, GPIO_INTERRUPT_RISING_EDGE, right_encoder_isr);

// 使能中断
uapi_gpio_enable_interrupt(LEFT_ENCODER_A_PIN);
uapi_gpio_enable_interrupt(LEFT_ENCODER_B_PIN);
uapi_gpio_enable_interrupt(RIGHT_ENCODER_A_PIN);
uapi_gpio_enable_interrupt(RIGHT_ENCODER_B_PIN);

osal_printk("[Encoder] GPIO and ISR initialized.\r\n");

}

/* ----- 速度与里程计算 ----- */
static void calculate_speed(encoder_data_t *enc)
{
int32_t pulse_diff = enc->pulse_count - enc->last_pulse_count;
enc->last_pulse_count = enc->pulse_count;

float revs_per_sec = (float)pulse_diff / PULSES_PER_REVOLUTION * (1000.0f / SPEED_CALC_INTERVAL_MS);
enc->speed_rpm = revs_per_sec * 60.0f;
enc->speed_cm_s = revs_per_sec * WHEEL_CIRCUMFERENCE;

}

static float get_distance_cm(encoder_data_t *enc)
{
return ((float)enc->pulse_count / PULSES_PER_REVOLUTION) * WHEEL_CIRCUMFERENCE;
}

/* ----- 电机控制函数(保持不变)----- */
static void motor_gpio_init(void)
{
uapi_pin_set_mode(AIN1_PIN, PIN_MODE_0);
uapi_pin_set_mode(AIN2_PIN, PIN_MODE_0);
uapi_pin_set_mode(BIN1_PIN, PIN_MODE_0);
uapi_pin_set_mode(BIN2_PIN, PIN_MODE_0);

uapi_gpio_set_dir(AIN1_PIN, GPIO_DIRECTION_OUTPUT);
uapi_gpio_set_dir(AIN2_PIN, GPIO_DIRECTION_OUTPUT);
uapi_gpio_set_dir(BIN1_PIN, GPIO_DIRECTION_OUTPUT);
uapi_gpio_set_dir(BIN2_PIN, GPIO_DIRECTION_OUTPUT);

}

static void motor_pwm_init(void)
{
uapi_pin_set_mode(PWMA_PIN, PIN_MODE_1);
uapi_pin_set_mode(PWMB_PIN, PIN_MODE_1);
uapi_pwm_init();
uapi_pwm_open(PWM_CHANNEL_A, &pwm_cfg_a);
uapi_pwm_open(PWM_CHANNEL_B, &pwm_cfg_b);
}

static void car_forward(void)
{
uapi_gpio_set_val(AIN1_PIN, GPIO_LEVEL_HIGH);
uapi_gpio_set_val(AIN2_PIN, GPIO_LEVEL_LOW);
uapi_gpio_set_val(BIN1_PIN, GPIO_LEVEL_HIGH);
uapi_gpio_set_val(BIN2_PIN, GPIO_LEVEL_LOW);

uint8_t channels[] = {PWM_CHANNEL_A, PWM_CHANNEL_B};
uapi_pwm_set_group(PWM_GROUP_ID, channels, 2);
uapi_pwm_start_group(PWM_GROUP_ID);
osal_printk("Car moving forward!\r\n");

}

/* ----- 电机任务(降低打印频率)----- */
static void motor_task(void *arg)
{
(void)arg;
osal_printk("\r\n========== [Motor] Task Started ==========\r\n");

motor_gpio_init();
motor_pwm_init();
car_forward();

while (1) {
    osal_printk("[Motor] Heartbeat\r\n");
    uapi_tcxo_delay_ms(5000);   // 改为5秒打印一次,降低CPU占用
}

}

/* ----- 编码器任务(使用中断计数,定期计算速度)----- */
static void encoder_task(void *arg)
{
(void)arg;
osal_printk("[Encoder] Task Started.\r\n");

encoder_init();

while (1) {
    uapi_tcxo_delay_ms(SPEED_CALC_INTERVAL_MS);
    
    calculate_speed(&g_left_encoder);
    calculate_speed(&g_right_encoder);
    
    osal_printk("[Encoder] L: cnt=%ld, rpm=%.2f, cm/s=%.2f, dist=%.2f cm | R: cnt=%ld, rpm=%.2f, cm/s=%.2f, dist=%.2f cm\r\n",
                g_left_encoder.pulse_count,
                g_left_encoder.speed_rpm,
                g_left_encoder.speed_cm_s,
                get_distance_cm(&g_left_encoder),
                g_right_encoder.pulse_count,
                g_right_encoder.speed_rpm,
                g_right_encoder.speed_cm_s,
                get_distance_cm(&g_right_encoder));
}

}

/* ----- 应用入口 ----- */
static void car_entry(void)
{
osal_printk("\r\n========== APP ENTRY ==========\r\n");

osThreadAttr_t attr = {0};

attr.name = "MotorTask";
attr.stack_size = MOTOR_TASK_STACK_SIZE;
attr.priority = MOTOR_TASK_PRIO;
if (osThreadNew(motor_task, NULL, &attr) == NULL) {
    osal_printk("!!! Failed to create MotorTask !!!\r\n");
} else {
    osal_printk("MotorTask created OK.\r\n");
}

attr.name = "EncoderTask";
attr.stack_size = ENCODER_TASK_STACK_SIZE;
attr.priority = ENCODER_TASK_PRIO;
if (osThreadNew(encoder_task, NULL, &attr) == NULL) {
    osal_printk("!!! Failed to create EncoderTask !!!\r\n");
} else {
    osal_printk("EncoderTask created OK.\r\n");
}

osal_printk("========== APP ENTRY DONE ==========\r\n\r\n");

}

app_run(car_entry);

三、当前开发板状态全景照片

电表测过没问题

四、开发板串口所有日志

026-04-19 00:30:06:540 -> [UPG] upgrade init OK!
2026-04-19 00:30:06:541 -> No need to upgrade...
2026-04-19 00:30:06:544 -> flash_encrypt disable.
2026-04-19 00:30:06:547 -> verify_image_key_area secure verify disable!
2026-04-19 00:30:06:552 -> verify_image_code_info secure verify disable!
2026-04-19 00:30:06:974 -> APP|dbg uart init ok.
[UPG] upgrade init OK!
2026-04-19 00:30:06:980 -> APP|init_sle_mac, mac_addr:0x50,0x5c,0x11,0x b,0x**,0x**,
2026-04-19 00:30:06:985 -> APP|init_dev_addr, mac_addr:0x50,0x5c,0x11,0x94,0x**,0x**,
2026-04-19 00:30:06:988 -> xo_trim_temp_comp val:0 0
2026-04-19 00:30:06:991 -> los_at_plt_cmd_register EXCUTE
2026-04-19 00:30:06:993 -> APP|thread[11] func null
2026-04-19 00:30:06:997 -> ========== APP ENTRY ==========
2026-04-19 00:30:06:998 -> MotorTask created OK.
2026-04-19 00:30:06:999 -> EncoderTask created OK.
2026-04-19 00:30:07:002 -> ========== APP ENTRY DONE ==========
2026-04-19 00:30:07:070 -> cpu 0 entering scheduler
APP|btc open
2026-04-19 00:30:07:073 -> ========== [Motor] Task Started ==========
2026-04-19 00:30:07:076 -> [DEBUG] GPIO init start...
2026-04-19 00:30:07:079 -> [DEBUG] GPIO init done.
2026-04-19 00:30:07:081 -> [DEBUG] PWM init start...
2026-04-19 00:30:07:084 -> [DEBUG] PWM init done.
2026-04-19 00:30:07:088 -> [DEBUG] Setting direction pins...
2026-04-19 00:30:07:090 -> [DEBUG] Starting PWM group...
2026-04-19 00:30:07:093 -> [DEBUG] Car forward command sent!
2026-04-19 00:30:07:093 -> [Motor] Heartbeat
2026-04-19 00:30:07:109 -> [Encoder] Task Started.
2026-04-19 00:30:07:116 -> [Encoder] GPIO pins configured as inputs.
2026-04-19 00:30:07:116 -> [Encoder] L:(1,1) R:(0,0)
2026-04-19 00:30:07:630 -> [Encoder] L:(0,0) R:(0,0)
2026-04-19 00:30:08:150 -> [Encoder] L:(1,0) R:(0,0)
2026-04-19 00:30:08:670 -> [Encoder] L:(1,1) R:(0,0)
2026-04-19 00:30:09:089 -> [Motor] Heartbeat
2026-04-19 00:30:09:190 -> [Encoder] L:(1,1) R:(0,0)
2026-04-19 00:30:09:710 -> [Encoder] L:(0,1) R:(0,0)
2026-04-19 00:30:10:234 -> [Encoder] L:(0,1) R:(0,0)
2026-04-19 00:30:10:750 -> [Encoder] L:(1,1) R:(0,0)
2026-04-19 00:30:11:001 -> xo update temp:3,diff:0,xo:0x30000
2026-04-19 00:30:11:090 -> [Motor] Heartbeat
2026-04-19 00:30:11:270 -> [Encoder] L:(1,1) R:(0,0)
2026-04-19 00:30:11:790 -> [Encoder] L:(0,0) R:(0,0)
2026-04-19 00:30:12:310 -> [Encoder] L:(0,0) R:(0,0)
2026-04-19 00:30:12:830 -> [Encoder] L:(1,1) R:(0,0)
2026-04-19 00:30:13:090 -> [Motor] Heartbeat
2026-04-19 00:30:13:484 -> [Encoder] L:(1,1) R:(0,0)
2026-04-19 00:30:13:872 -> [Encoder] L:(0,1) R:(0,0)
2026-04-19 00:30:14:390 -> [Encoder] L:(1,1) R:(0,0)
2026-04-19 00:30:14:910 -> [Encoder] L:(1,1) R:(0,0)
2026-04-19 00:30:15:090 -> [Motor] Heartbeat
2026-04-19 00:30:15:430 -> [Encoder] L:(1,1) R:(0,0)
2026-04-19 00:30:15:950 -> [Encoder] L:(0,0) R:(0,0)
2026-04-19 00:30:16:470 -> [Encoder] L:(1,0) R:(0,0)
2026-04-19 00:30:16:990 -> [Encoder] L:(1,0) R:(0,0)
2026-04-19 00:30:17:090 -> [Motor] Heartbeat
2026-04-19 00:30:17:510 -> [Encoder] L:(0,0) R:(0,0)
2026-04-19 00:30:18:030 -> [Encoder] L:(0,0) R:(0,0)
2026-04-19 00:30:18:550 -> [Encoder] L:(0,0) R:(0,0)
2026-04-19 00:30:19:070 -> [Encoder] L:(0,0) R:(0,0)
2026-04-19 00:30:19:090 -> [Motor] Heartbeat
2026-04-19 00:30:19:590 -> [Encoder] L:(1,1) R:(0,0)
2026-04-19 00:30:20:110 -> [Encoder] L:(0,0) R:(0,0)
2026-04-19 00:30:20:632 -> [Encoder] L:(1,1) R:(0,0)
2026-04-19 00:30:21:090 -> [Motor] Heartbeat
2026-04-19 00:30:21:150 -> [Encoder] L:(0,1) R:(0,0)
2026-04-19 00:30:21:670 -> [Encoder] L:(0,1) R:(0,0)
2026-04-19 00:30:22:301 -> Name TaskEntryAddr TID Priority Status StackSize WaterLine StackPoint TopOfStack SemID EventMask CPUP CPUP 10.0s CPUP 1.0s


Swt_Task 0x00a0cb00 0x1 0 Suspend 0x800 0x478 0x00a2e510 0x00a2de80 0xffffffff 0x0 0.0 0.0 0.0
IdleCore000 0x00a0c212 0x2 31 Ready 0x400 0x114 0x00a2e990 0x00a2e6a0 0xffffffff 0x0 0.0 0.0 0.0
dfx_msg 0x00250682 0x3 5 Pend 0x800 0x1b4 0x00a31410 0x00a30dc0 0xffffffff 0x0 0.0 0.0 0.0
app 0x00253dfc 0x4 27 Ready 0x800 0x114 0x00a31ed0 0x00a317e0 0xffffffff 0x0 0.0 0.0 0.0
log 0x003600da 0x5 25 Ready 0x800 0x114 0x00a326f0 0x00a32000 0xffffffff 0x0 0.0 0.0 0.0
bt 0x0014d368 0x6 1 Pend 0xe00 0x384 0x00a33470 0x00a32820 0xffffffff 0x0 0.5 0.0 0.0
bt_sdk 0x00315b4a 0x7 12 Pend 0x800 0x1b4 0x00a33c90 0x00a33640 0xffffffff 0x0 0.0 0.0 0.0
bth_sdk 0x0032a1ee 0x8 13 Pend 0x800 0x164 0x00a344f0 0x00a33e50 0x4 0x0 0.0 0.0 0.0
recvBthDataTask 0x0032dd90 0x9 10 Pend 0x800 0x194 0x00a34ce0 0x00a34670 0xffffffff 0x0 0.0 0.0 0.0
bt_service 0x00314734 0xa 12 Pend 0x1000 0x1c4 0x00a35cd0 0x00a34e90 0xffffffff 0x0 0.0 0.0 0.0
at 0x00247746 0xb 1 Pend 0x2000 0x194 0x00a37d20 0x00a35eb0 0xffffffff 0x0 0.0 0.0 0.0
wifi 0x0029d7dc 0xc 25 Ready 0x2000 0x114 0x00a39db0 0x00a37ec0 0xffffffff 0x0 0.0 0.0 0.0
radar_driver 0x0034e71c 0xd 23 Ready 0x800 0x114 0x00a3a5d0 0x00a39ee0 0xffffffff 0x0 0.0 0.0 0.0
radar_feature 0x0034f140 0xe 24 Ready 0x2600 0x114 0x00a3cbf0 0x00a3a700 0xffffffff 0x0 0.0 0.0 0.0
MotorTask 0x0034b724 0xf 17 Running 0x1000 0x434 0x00a3dab0 0x00a3cd20 0xffffffff 0x0 49.8 50.0 50.0
EncoderTask 0x0034b6ac 0x10 17 Ready 0x1000 0x438 0x00a3eab0 0x00a3dd30 0xffffffff 0x0 49.6 50.0 50.0
schedule_loop 0x00314d6c 0x11 11 Pend 0xa00 0x164 0x00a40340 0x00a3faa0 0x3 0x0 0.0 0.0 0.0
APP|exception:8000000c
2026-04-19 00:30:22:349 -> APP|Oops:NMI
task:MotorTask
thrdPid:0xf
type:0xc
nestCnt:0
phase:Task
ccause:0x8
mcause:0x8000000c
mtval:0x0
gp:0xa11b2c
mstatus:0x80007800
mepc:0x10d2fa
ra:0x10d2fa
sp:0xa3dbc0
tp:0x0
t0:0x8
t1:0x44024040
t2:0x1c1c1c1c
s0:0x0
s1:0x266ef46b
a0:0x80006088
a1:0x0
a2:0x0
a3:0x180000
a4:0xfffffffd
a5:0x440004c0
a6:0xff
a7:0xa3dc80
s2:0xd0d0d0d
s3:0xc0c0c0c
s4:0xb0b0b0b
s5:0xa0a0a0a
s6:0x9090909
s7:0x8080808
s8:0x7070707
s9:0x6060606
s10:0x5050505
s11:0x4040404
t3:0x13131313
t4:0x12121212
t5:0x11111111
t6:0x10101010
APP|cxcptsc = 0x8
2026-04-19 00:30:22:351 -> APP|backtrace begin
2026-04-19 00:30:22:357 -> fp error, backtrace failed!
APP|backtrace end
2026-04-19 00:30:22:360 -> APP|stack txt info begin
2026-04-19 00:30:22:365 -> APP|traceback 1 -- sp addr= 0xa3dbc4 sp content= 0x10d2fa
2026-04-19 00:30:22:371 -> APP|traceback 31 -- sp addr= 0xa3dc3c sp content= 0x10d2fa
2026-04-19 00:30:22:376 -> APP|traceback 67 -- sp addr= 0xa3dccc sp content= 0x10d2fa
2026-04-19 00:30:22:382 -> APP|traceback 71 -- sp addr= 0xa3dcdc sp content= 0x10d376
2026-04-19 00:30:22:387 -> APP|traceback 74 -- sp addr= 0xa3dce8 sp content= 0x34ba4e
2026-04-19 00:30:22:393 -> APP|traceback 75 -- sp addr= 0xa3dcec sp content= 0x34b7ec
2026-04-19 00:30:22:399 -> APP|traceback 83 -- sp addr= 0xa3dd0c sp content= 0xa0c256
2026-04-19 00:30:22:404 -> APP|traceback 87 -- sp addr= 0xa3dd1c sp content= 0xa0e1ea
2026-04-19 00:30:22:407 -> APP|stack txt info end
2026-04-19 00:30:22:447 -> APP|Reboot core:2 cause 0x2008boot.
2026-04-19 00:30:22:494 -> Flash Init Fail! ret = 0x80001341
2026-04-19 00:30:22:496 -> verify_public_rootkey secure verify disable!
2026-04-19 00:30:22:499 -> verify_params_key_area secure verify disable!
2026-04-19 00:30:22:506 -> verify_params_area_info secure verify disable!
2026-04-19 00:30:22:508 -> verify_image_key_area secure verify disable!
2026-04-19 00:30:22:513 -> verify_image_code_info secure verify disable!
2026-04-19 00:30:22:575 -> SSB Uart Init Succ!
2026-04-19 00:30:22:578 -> SSB Flash Init Succ!
2026-04-19 00:30:22:581 -> verify_image_key_area secure verify disable!
2026-04-19 00:30:22:585 -> verify_image_code_info secure verify disable!
2026-04-19 00:30:22:605 -> Flashboot Uart Init Succ!
2026-04-19 00:30:22:607 -> Flashboot Malloc Init Succ!
2026-04-19 00:30:22:610 -> Flash Init Succ!
2026-04-19 00:30:22:610 -> No need to fix SR!
2026-04-19 00:30:22:616 -> io level work in hw mode, level[chip]:0x33
2026-04-19 00:30:22:618 -> flashboot version : 1.10.102
2026-04-19 00:30:22:619 -> [UPG] upgrade init OK!
2026-04-19 00:30:22:622 -> No need to upgrade...
2026-04-19 00:30:22:624 -> flash_encrypt disable.
2026-04-19 00:30:22:627 -> verify_image_key_area secure verify disable!
2026-04-19 00:30:22:632 -> verify_image_code_info secure verify disable!
2026-04-19 00:30:23:054 -> APP|dbg uart init ok.
[UPG] upgrade init OK!
2026-04-19 00:30:23:059 -> APP|init_sle_mac, mac_addr:0x50,0x5c,0x11,0x b,0x**,0x**,
2026-04-19 00:30:23:065 -> APP|init_dev_addr, mac_addr:0x50,0x5c,0x11,0x94,0x**,0x**,
2026-04-19 00:30:23:068 -> xo_trim_temp_comp val:0 0
2026-04-19 00:30:23:071 -> los_at_plt_cmd_register EXCUTE
2026-04-19 00:30:23:073 -> APP|thread[11] func null
2026-04-19 00:30:23:076 -> ========== APP ENTRY ==========
2026-04-19 00:30:23:076 -> MotorTask created OK.
2026-04-19 00:30:23:079 -> EncoderTask created OK.
2026-04-19 00:30:23:083 -> ========== APP ENTRY DONE ==========
2026-04-19 00:30:23:151 -> cpu 0 entering scheduler
APP|btc open
2026-04-19 00:30:23:153 -> ========== [Motor] Task Started ==========
2026-04-19 00:30:23:155 -> [DEBUG] GPIO init start...
2026-04-19 00:30:23:158 -> [DEBUG] GPIO init done.
2026-04-19 00:30:23:165 -> [DEBUG] PWM init start...
2026-04-19 00:30:23:166 -> [DEBUG] PWM init done.
2026-04-19 00:30:23:167 -> [DEBUG] Setting direction pins...
2026-04-19 00:30:23:169 -> [DEBUG] Starting PWM group...
2026-04-19 00:30:23:173 -> [DEBUG] Car forward command sent!
2026-04-19 00:30:23:173 -> [Motor] Heartbeat
2026-04-19 00:30:23:189 -> [Encoder] Task Started.
2026-04-19 00:30:23:213 -> [Encoder] GPIO pins configured as inputs.
2026-04-19 00:30:23:214 -> [Encoder] L:(1,1) R:(0,0)
2026-04-19 00:30:23:710 -> [Encoder] L:(0,0) R:(0,0)
2026-04-19 00:30:24:230 -> [Encoder] L:(0,0) R:(0,0)
2026-04-19 00:30:24:750 -> [Encoder] L:(1,0) R:(0,0)
2026-04-19 00:30:25:172 -> [Motor] Heartbeat
2026-04-19 00:30:25:270 -> [Encoder] L:(0,1) R:(0,0)
2026-04-19 00:30:25:790 -> [Encoder] L:(0,1) R:(0,0)
2026-04-19 00:30:26:310 -> [Encoder] L:(1,1) R:(0,0)
2026-04-19 00:30:26:830 -> [Encoder] L:(0,0) R:(0,0)
2026-04-19 00:30:27:080 -> xo update temp:3,diff:0,xo:0x30000
2026-04-19 00:30:27:170 -> [Motor] Heartbeat
2026-04-19 00:30:27:350 -> [Encoder] L:(0,0) R:(0,0)
2026-04-19 00:30:27:870 -> [Encoder] L:(0,1) R:(0,0)
2026-04-19 00:30:28:390 -> [Encoder] L:(1,0) R:(0,0)
2026-04-19 00:30:28:912 -> [Encoder] L:(1,1) R:(0,0)
2026-04-19 00:30:29:173 -> [Motor] Heartbeat
2026-04-19 00:30:29:430 -> [Encoder] L:(0,0) R:(0,0)
2026-04-19 00:30:29:950 -> [Encoder] L:(1,1) R:(0,0)
2026-04-19 00:30:30:471 -> [Encoder] L:(0,0) R:(0,0)
2026-04-19 00:30:30:990 -> [Encoder] L:(1,0) R:(0,0)
2026-04-19 00:30:31:170 -> [Motor] Heartbeat
2026-04-19 00:30:31:510 -> [Encoder] L:(0,1) R:(0,0)
2026-04-19 00:30:32:030 -> [Encoder] L:(0,0) R:(0,0)
2026-04-19 00:30:32:550 -> [Encoder] L:(0,0) R:(0,0)
2026-04-19 00:30:33:070 -> [Encoder] L:(1,1) R:(0,0)
2026-04-19 00:30:33:169 -> [Motor] Heartbeat
2026-04-19 00:30:33:590 -> [Encoder] L:(1,1) R:(0,0)
2026-04-19 00:30:34:110 -> [Encoder] L:(0,1) R:(0,0)
2026-04-19 00:30:34:630 -> [Encoder] L:(0,0) R:(0,0)
2026-04-19 00:30:35:150 -> [Encoder] L:(1,1) R:(0,0)
2026-04-19 00:30:35:170 -> [Motor] Heartbeat
2026-04-19 00:30:35:670 -> [Encoder] L:(1,1) R:(0,0)
2026-04-19 00:30:36:190 -> [Encoder] L:(0,0) R:(0,0)
2026-04-19 00:30:36:710 -> [Encoder] L:(1,0) R:(0,0)
2026-04-19 00:30:37:172 -> [Motor] Heartbeat
2026-04-19 00:30:37:230 -> [Encoder] L:(0,0) R:(0,0)
2026-04-19 00:30:37:750 -> [Encoder] L:(0,0) R:(0,0)
2026-04-19 00:30:38:381 -> Name TaskEntryAddr TID Priority Status StackSize WaterLine StackPoint TopOfStack SemID EventMask CPUP CPUP 10.0s CPUP 1.0s


Swt_Task 0x00a0cb00 0x1 0 Suspend 0x800 0x478 0x00a2e510 0x00a2de80 0xffffffff 0x0 0.0 0.0 0.0
IdleCore000 0x00a0c212 0x2 31 Ready 0x400 0x114 0x00a2e990 0x00a2e6a0 0xffffffff 0x0 0.0 0.0 0.0
dfx_msg 0x00250682 0x3 5 Pend 0x800 0x1b4 0x00a31410 0x00a30dc0 0xffffffff 0x0 0.0 0.0 0.0
app 0x00253dfc 0x4 27 Ready 0x800 0x114 0x00a31ed0 0x00a317e0 0xffffffff 0x0 0.0 0.0 0.0
log 0x003600da 0x5 25 Ready 0x800 0x114 0x00a326f0 0x00a32000 0xffffffff 0x0 0.0 0.0 0.0
bt 0x0014d368 0x6 1 Pend 0xe00 0x3c4 0x00a33470 0x00a32820 0xffffffff 0x0 0.5 0.0 0.0
bt_sdk 0x00315b4a 0x7 12 Pend 0x800 0x1b4 0x00a33c90 0x00a33640 0xffffffff 0x0 0.0 0.0 0.0
bth_sdk 0x0032a1ee 0x8 13 Pend 0x800 0x164 0x00a344f0 0x00a33e50 0x4 0x0 0.0 0.0 0.0
recvBthDataTask 0x0032dd90 0x9 10 Pend 0x800 0x194 0x00a34ce0 0x00a34670 0xffffffff 0x0 0.0 0.0 0.0
bt_service 0x00314734 0xa 12 Pend 0x1000 0x1c4 0x00a35cd0 0x00a34e90 0xffffffff 0x0 0.0 0.0 0.0
at 0x00247746 0xb 1 Pend 0x2000 0x194 0x00a37d20 0x00a35eb0 0xffffffff 0x0 0.0 0.0 0.0
wifi 0x0029d7dc 0xc 25 Ready 0x2000 0x114 0x00a39db0 0x00a37ec0 0xffffffff 0x0 0.0 0.0 0.0
radar_driver 0x0034e71c 0xd 23 Ready 0x800 0x114 0x00a3a5d0 0x00a39ee0 0xffffffff 0x0 0.0 0.0 0.0
radar_feature 0x0034f140 0xe 24 Ready 0x2600 0x114 0x00a3cbf0 0x00a3a700 0xffffffff 0x0 0.0 0.0 0.0
MotorTask 0x0034b724 0xf 17 Running 0x1000 0x434 0x00a3da90 0x00a3cd20 0xffffffff 0x0 49.8 50.0 50.0
EncoderTask 0x0034b6ac 0x10 17 Ready 0x1000 0x438 0x00a3eab0 0x00a3dd30 0xffffffff 0x0 49.6 50.0 50.0
schedule_loop 0x00314d6c 0x11 11 Pend 0xa00 0x164 0x00a40340 0x00a3faa0 0x3 0x0 0.0 0.0 0.0
APP|exception:8000000c
2026-04-19 00:30:38:429 -> APP|Oops:NMI
task:MotorTask
thrdPid:0xf
type:0xc
nestCnt:0
phase:Task
ccause:0x8
mcause:0x8000000c
mtval:0x0
gp:0xa11b2c
mstatus:0x80007880
mepc:0x10d2f4
ra:0x10d376
sp:0xa3dbd0
tp:0x0
t0:0x8
t1:0x44024040
t2:0x1c1c1c1c
s0:0x0
s1:0x266ef447
a0:0x23c3f2fd
a1:0x0
a2:0x0
a3:0x180000
a4:0xfffffffd
a5:0x440004c0
a6:0xff
a7:0xa3dc80
s2:0xd0d0d0d
s3:0xc0c0c0c
s4:0xb0b0b0b
s5:0xa0a0a0a
s6:0x9090909
s7:0x8080808
s8:0x7070707
s9:0x6060606
s10:0x5050505
s11:0x4040404
t3:0x13131313
t4:0x12121212
t5:0x11111111
t6:0x10101010
APP|cxcptsc = 0x8
2026-04-19 00:30:38:431 -> APP|backtrace begin
2026-04-19 00:30:38:437 -> fp error, backtrace failed!
APP|backtrace end
2026-04-19 00:30:38:439 -> APP|stack txt info begin
2026-04-19 00:30:38:445 -> APP|traceback 1 -- sp addr= 0xa3dbd4 sp content= 0x10d2f4
2026-04-19 00:30:38:453 -> APP|traceback 31 -- sp addr= 0xa3dc4c sp content= 0x10d376
2026-04-19 00:30:38:457 -> APP|traceback 67 -- sp addr= 0xa3dcdc sp content= 0x10d376
2026-04-19 00:30:38:463 -> APP|traceback 70 -- sp addr= 0xa3dce8 sp content= 0x34ba4e
2026-04-19 00:30:38:475 -> APP|traceback 71 -- sp addr= 0xa3dcec sp content= 0x34b7ec
2026-04-19 00:30:38:476 -> APP|traceback 79 -- sp addr= 0xa3dd0c sp content= 0xa0c256
2026-04-19 00:30:38:480 -> APP|traceback 83 -- sp addr= 0xa3dd1c sp content= 0xa0e1ea
2026-04-19 00:30:38:481 -> APP|stack txt info end
2026-04-19 00:30:38:521 -> APP|Reboot core:2 cause 0x2008boot.
2026-04-19 00:30:38:568 -> Flash Init Fail! ret = 0x80001341
2026-04-19 00:30:38:570 -> verify_public_rootkey secure verify disable!
2026-04-19 00:30:38:573 -> verify_params_key_area secure verify disable!
2026-04-19 00:30:38:580 -> verify_params_area_info secure verify disable!
2026-04-19 00:30:38:582 -> verify_image_key_area secure verify disable!
2026-04-19 00:30:38:587 -> verify_image_code_info secure verify disable!
2026-04-19 00:30:38:650 -> SSB Uart Init Succ!
2026-04-19 00:30:38:656 -> SSB Flash Init Succ!
2026-04-19 00:30:38:658 -> verify_image_key_area secure verify disable!
2026-04-19 00:30:38:667 -> verify_image_code_info secure verify disable!
2026-04-19 00:30:38:679 -> Flashboot Uart Init Succ!
2026-04-19 00:30:38:682 -> Flashboot Malloc Init Succ!
2026-04-19 00:30:38:684 -> Flash Init Succ!
2026-04-19 00:30:38:684 -> No need to fix SR!
2026-04-19 00:30:38:690 -> io level work in hw mode, level[chip]:0x33
2026-04-19 00:30:38:693 -> flashboot version : 1.10.102
2026-04-19 00:30:38:693 -> [UPG] upgrade init OK!
2026-04-19 00:30:38:695 -> No need to upgrade...
2026-04-19 00:30:38:698 -> flash_encrypt disable.
2026-04-19 00:30:38:701 -> verify_image_key_area secure verify disable!
2026-04-19 00:30:38:706 -> verify_image_code_info secure verify disable!
2026-04-19 00:30:39:128 -> APP|dbg uart init ok.
[UPG] upgrade init OK!
2026-04-19 00:30:39:133 -> APP|init_sle_mac, mac_addr:0x50,0x5c,0x11,0x b,0x**,0x**,
2026-04-19 00:30:39:139 -> APP|init_dev_addr, mac_addr:0x50,0x5c,0x11,0x94,0x**,0x**,
2026-04-19 00:30:39:142 -> xo_trim_temp_comp val:0 0
2026-04-19 00:30:39:144 -> los_at_plt_cmd_register EXCUTE
2026-04-19 00:30:39:147 -> APP|thread[11] func null
2026-04-19 00:30:39:150 -> ========== APP ENTRY ==========
2026-04-19 00:30:39:150 -> MotorTask created OK.
2026-04-19 00:30:39:154 -> EncoderTask created OK.
2026-04-19 00:30:39:157 -> ========== APP ENTRY DONE ==========
2026-04-19 00:30:39:224 -> cpu 0 entering scheduler
APP|btc open
2026-04-19 00:30:39:227 -> ========== [Motor] Task Started ==========
2026-04-19 00:30:39:232 -> [DEBUG] GPIO init start...
2026-04-19 00:30:39:233 -> [DEBUG] GPIO init done.
2026-04-19 00:30:39:235 -> [DEBUG] PWM init start...
2026-04-19 00:30:39:238 -> [DEBUG] PWM init done.
2026-04-19 00:30:39:241 -> [DEBUG] Setting direction pins...
2026-04-19 00:30:39:243 -> [DEBUG] Starting PWM group...
2026-04-19 00:30:39:248 -> [DEBUG] Car forward command sent!
2026-04-19 00:30:39:248 -> [Motor] Heartbeat
2026-04-19 00:30:39:265 -> [Encoder] Task Started.
2026-04-19 00:30:39:269 -> [Encoder] GPIO pins configured as inputs.
2026-04-19 00:30:39:270 -> [Encoder] L:(1,1) R:(0,0)
2026-04-19 00:30:39:784 -> [Encoder] L:(1,1) R:(0,0)
2026-04-19 00:30:40:305 -> [Encoder] L:(1,1) R:(0,0)
2026-04-19 00:30:40:824 -> [Encoder] L:(0,0) R:(0,0)
2026-04-19 00:30:41:243 -> [Motor] Heartbeat
2026-04-19 00:30:41:344 -> [Encoder] L:(1,1) R:(0,0)
2026-04-19 00:30:41:864 -> [Encoder] L:(1,1) R:(0,0)
2026-04-19 00:30:42:384 -> [Encoder] L:(1,1) R:(0,0)
2026-04-19 00:30:42:904 -> [Encoder] L:(0,1) R:(0,0)
2026-04-19 00:30:43:155 -> xo update temp:3,diff:0,xo:0x30000
2026-04-19 00:30:43:244 -> [Motor] Heartbeat
2026-04-19 00:30:43:427 -> [Encoder] L:(1,1) R:(0,0)
2026-04-19 00:30:43:945 -> [Encoder] L:(0,0) R:(0,0)
---- 已关闭串行端口 COM3 ----看一下有什么问题吗``

0 Answers