2025-04-23 17:54:31 +08:00
<!DOCTYPE html> < html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = "zh-cn" lang = "zh-cn" data-whc_version = "26.1" >
2025-07-22 11:15:46 +08:00
< head > < meta http-equiv = "Content-Type" content = "text/html; charset=UTF-8" / > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" / > < meta http-equiv = "X-UA-Compatible" content = "IE=edge" / > < meta name = "description" content = "Luban-Lite 提供 Backtrace 及解析功能,便于开发者准确定位软件调试中出现的系统崩溃问题,例如内存访问越界。在系统创建线程时,会分配栈内存空间,通过分析运行时栈内存的结构,逐层解析函数调用的历史记录,从而定位出软件异常的问题点。 本节适用于以下芯片系列: D21x D13x D12x G73x 栈回溯功能的相关工具均已包含在最新 SDK 中,确保已更新至最新的 SDK。 注: 在 ..." / > < meta name = "DC.rights.owner" content = "(C) 版权 2025" / > < meta name = "copyright" content = "(C) 版权 2025" / > < meta name = "generator" content = "DITA-OT" / > < meta name = "DC.type" content = "topic" / > < meta name = "DC.relation" content = "../../../topics/sdk/chapter-app.html" / > < meta name = "DC.relation" content = "../../../topics/sdk/app/usb-display-tp-calibrate_windows.html" / > < meta name = "DC.relation" content = "../../../topics/sdk/peripheral/peripheral-intro.html" / > < meta name = "DC.contributor" content = "yan.wang" / > < meta name = "DC.contributor" content = "yan.wang" / > < meta name = "DC.creator" content = "yan.wang" / > < meta name = "DC.date.modified" content = "2025-05-16" / > < meta name = "DC.format" content = "HTML5" / > < meta name = "DC.identifier" content = "backtrace" / > < meta name = "DC.language" content = "zh-CN" / > < title > Backtrace 栈回溯< / title > <!-- Generated with build number 2025051600. --> < meta name = "wh-path2root" content = "../../../" / > < meta name = "wh-toc-id" content = "backtrace-d3752e1833" / > < meta name = "wh-source-relpath" content = "topics/sdk/app/backtrace.dita" / > < meta name = "wh-out-relpath" content = "topics/sdk/app/backtrace.html" / >
2025-04-23 17:54:31 +08:00
< link rel = "stylesheet" type = "text/css" href = "../../../webhelp/app/commons.css?buildId=2024041900" / >
< link rel = "stylesheet" type = "text/css" href = "../../../webhelp/app/topic.css?buildId=2024041900" / >
2025-07-22 11:15:46 +08:00
< script src = "../../../webhelp/app/options/properties.js?buildId=20250519091401" > < / script >
2025-04-23 17:54:31 +08:00
< script src = "../../../webhelp/app/localization/strings.js?buildId=2024041900" > < / script >
2025-07-22 11:15:46 +08:00
< script src = "../../../webhelp/app/search/index/keywords.js?buildId=20250519091401" > < / script >
2025-04-23 17:54:31 +08:00
< script defer = "defer" src = "../../../webhelp/app/commons.js?buildId=2024041900" > < / script >
< script defer = "defer" src = "../../../webhelp/app/topic.js?buildId=2024041900" > < / script >
< link rel = "stylesheet" type = "text/css" href = "../../../webhelp/template/css/aic-styles-web-internal.css?buildId=2024041900" / > < link rel = "stylesheet" type = "text/css" href = "../../../webhelp/template/css/notes.css?buildId=2024041900" / > < link rel = "stylesheet" type = "text/css" href = "../../../webhelp/template/css/aic-common.css?buildId=2024041900" / > < link rel = "stylesheet" type = "text/css" href = "../../../webhelp/template/css/aic-images.css?buildId=2024041900" / > < link rel = "stylesheet" type = "text/css" href = "../../../webhelp/template/css/footnote.css?buildId=2024041900" / > < link rel = "stylesheet" type = "text/css" href = "../../../webhelp/template/css/aic-highlight-changes.css?buildId=2024041900" / > < link rel = "stylesheet" type = "text/css" href = "../../../webhelp/template/css/search-in-header.css?buildId=2024041900" / > < link rel = "stylesheet" type = "text/css" href = "../../../webhelp/template/css/topic-body-list.css?buildId=2024041900" / > < / head >
< body id = "backtrace" class = "wh_topic_page frmBody" >
< a href = "#wh_topic_body" class = "sr-only sr-only-focusable" >
跳转到主要内容
< / a >
< header class = "navbar navbar-default wh_header" >
< div class = "container-fluid" >
< div xmlns:whc = "http://www.oxygenxml.com/webhelp/components" class = "wh_header_flex_container navbar-nav navbar-expand-md navbar-dark" >
< div class = "wh_logo_and_publication_title_container" >
< div class = "wh_logo_and_publication_title" >
< a href = "https://www.artinchip.com" class = " wh_logo d-none d-sm-block " > < img src = "../../../company-logo.png" alt = " RTOS SDK 使用指南 SDK 指南文件 " / > < / a >
< div class = " wh_publication_title " > < a href = "../../../index.html" > < span class = "booktitle" > < span class = "ph mainbooktitle" > RTOS SDK 使用指南< / span > < span class = "ph booktitlealt" > SDK 指南文件< / span > < / span > < / a > < / div >
< / div >
< / div >
< div class = "wh_top_menu_and_indexterms_link collapse navbar-collapse" id = "wh_top_menu_and_indexterms_link" >
< / div >
< div class = " wh_search_input navbar-form wh_topic_page_search search " role = "form" >
< form id = "searchForm" method = "get" role = "search" action = "../../../search.html" > < div > < input type = "search" placeholder = "搜索 " class = "wh_search_textfield" id = "textToSearch" name = "searchQuery" aria-label = "搜索查询" required = "required" / > < button type = "submit" class = "wh_search_button" aria-label = "搜索" > < span class = "search_input_text" > 搜索< / span > < / button > < / div > < / form >
< / div > < / div >
< / div >
< / header >
< div class = "container-fluid" id = "wh_topic_container" >
< div class = "row" >
< nav class = "wh_tools d-print-none navbar-expand-md" aria-label = "Tools" >
< div data-tooltip-position = "bottom" class = " wh_breadcrumb " > < ol class = "d-print-none" > < li > < span class = "home" > < a href = "../../../index.html" > < span > 主页< / span > < / a > < / span > < / li > < li > < div class = "topicref" data-id = "concept_rcx_czh_pzb" > < div class = "title" > < a href = "../../../topics/sdk/chapter-app.html" > 应用场景< / a > < div class = "wh-tooltip" > < p class = "shortdesc" > 描述了 SDK 在不同应用场景中的配置和使用, 包括系统更新、OTA、安全方案等。< / p > < / div > < / div > < / div > < / li > < li class = "active" > < div class = "topicref" data-id = "backtrace" > < div class = "title" > < a href = "../../../topics/sdk/app/backtrace.html" > Backtrace 栈回溯< / a > < / div > < / div > < / li > < / ol > < / div >
< div class = "wh_right_tools" >
< button class = "wh_hide_highlight" aria-label = "切换搜索突出显示" title = "切换搜索突出显示" > < / button >
< button class = "webhelp_expand_collapse_sections" data-next-state = "collapsed" aria-label = "折叠截面" title = "折叠截面" > < / button >
< div class = " wh_navigation_links " > < span id = "topic_navigation_links" class = "navheader" >
< span class = "navprev" > < a class = "- topic/link link" href = "../../../topics/sdk/app/usb-display-tp-calibrate_windows.html" title = "在 Windows 中校准触摸屏" aria-label = "上一主题: 在 Windows 中校准触摸屏" rel = "prev" > < / a > < / span >
< span class = "navnext" > < a class = "- topic/link link" href = "../../../topics/sdk/peripheral/peripheral-intro.html" title = "外设移植" aria-label = "下一主题: 外设移植" rel = "next" > < / a > < / span > < / span > < / div >
< div class = " wh_print_link print d-none d-md-inline-block " > < button onClick = "window.print()" title = "打印此页" aria-label = "打印此页" > < / button > < / div >
< button type = "button" id = "wh_toc_button" class = "custom-toggler navbar-toggler collapsed wh_toggle_button navbar-light" aria-expanded = "false" aria-label = "Toggle publishing table of content" aria-controls = "wh_publication_toc" >
< span class = "navbar-toggler-icon" > < / span >
< / button >
< / div >
< / nav >
< / div >
< div class = "wh_content_area" >
< div class = "row" >
< nav id = "wh_publication_toc" class = "col-lg-3 col-md-3 col-sm-12 d-md-block d-none d-print-none" aria-label = "Table of Contents Container" >
< div id = "wh_publication_toc_content" >
2025-07-22 11:15:46 +08:00
< div class = " wh_publication_toc " data-tooltip-position = "right" > < span class = "expand-button-action-labels" > < span id = "button-expand-action" role = "button" aria-label = "Expand" > < / span > < span id = "button-collapse-action" role = "button" aria-label = "Collapse" > < / span > < span id = "button-pending-action" role = "button" aria-label = "Pending" > < / span > < / span > < ul role = "tree" aria-label = "Table of Contents" > < li role = "treeitem" > < div data-tocid = "revinfo_linux-d3752e463" class = "topicref" data-id = "revinfo_linux" data-state = "leaf" > < span role = "button" class = "wh-expand-btn" > < / span > < div class = "title" > < a href = "../../../topics/revinfo/revinfo_rtos.html" id = "revinfo_linux-d3752e463-link" > 修订记录< / a > < / div > < / div > < / li > < li role = "treeitem" aria-expanded = "false" > < div data-tocid = "id-d3752e480" class = "topicref" data-id = "id" data-state = "not-ready" > < span role = "button" tabindex = "0" aria-labelledby = "button-expand-action id-d3752e480-link" class = "wh-expand-btn" > < / span > < div class = "title" > < a href = "../../../topics/sdk/env/sdk-compile.html" id = "id-d3752e480-link" > SDK 编译< / a > < div class = "wh-tooltip" > < p class = "shortdesc" > 介绍不同编译环境下 SDK 的详细编译流程。< / p > < / div > < / div > < / div > < / li > < li role = "treeitem" aria-expanded = "false" > < div data-tocid = "id-d3752e604" class = "topicref" data-id = "id" data-state = "not-ready" > < span role = "button" tabindex = "0" aria-labelledby = "button-expand-action id-d3752e604-link" class = "wh-expand-btn" > < / span > < div class = "title" > < a href = "../../../topics/sdk/advanced/sdk-usage.html" id = "id-d3752e604-link" > 使用指南< / a > < div class = "wh-tooltip" > < p class = "shortdesc" > 命令详解,编译选项,镜像和分区配置,添加应用和驱动等的详细使用说明。< / p > < / div > < / div > < / div > < / li > < li role = "treeitem" aria-expanded = "true" > < div data-tocid = "concept_rcx_czh_pzb-d3752e1004" class = "topicref" data-id = "concept_rcx_czh_pzb" data-state = "expanded" > < span role = "button" tabindex = "0" aria-labelledby = "button-collapse-action concept_rcx_czh_pzb-d3752e1004-link" class = "wh-expand-btn" > < / span > < div class = "title" > < a href = "../../../topics/sdk/chapter-app.html" id = "concept_rcx_czh_pzb-d3752e1004-link" > 应用场景< / a > < div class = "wh-tooltip" > < p class = "shortdesc" > 描述了 SDK 在不同应用场景中的配置和使用, 包括系统更新、OTA、安全方案等。< / p > < / div > < / div > < / div > < ul role = "group" class = "navbar-nav nav-list" > < li role = "treeitem" > < div data-tocid = "id-d3752e1021" class = "topicref" data-id = "id" data-state = "leaf" > < span role = "button" class = "wh-expand-btn" > < / span > < div class = "title" > < a href = "../../../topics/sdk/usb/udisk.html" id = "id-d3752e1021-link" > 挂载 U 盘 < / a > < / div > < / div > < / li > < li role = "treeitem" > < div data-tocid = "id-d3752e1035" class = "topicref" data-id = "id" data-state = "leaf" > < span role = "button" class = "wh-expand-btn" > < / span > < div class = "title" > < a href = "../../../topics/sdk/sdmc/sdcard.html" id = "id-d3752e1035-link" > 挂载 SD 卡< / a > < / div > < / div > < / li > < li role = "treeitem" aria-expanded = "false" > < div data-tocid = "id-d3752e1049" class = "topicref" data-id = "id" data-state = "not-ready" > < span role = "button" tabindex = "0" aria-labelledby = "button-expand-action id-d3752e1049-link" class = "wh-expand-btn" > < / span > < div class = "title" > < a href = "../../../topics/sdk/burnsys/burnsys_user_guide.html" id = "id-d3752e1049-link" > 系统更新< / a > < / div > < / div > < / li > < li role = "treeitem" aria-expanded = "false" > < div data-tocid = "id-d3752e1163" class = "topicref" data-id = "id" data-state = "not-ready" > < span role = "button" tabindex = "0" aria-labelledby = "button-expand-action id-d3752e1163-link" class = "wh-expand-btn" > < / span > < div class = "title" > < a href = "../../../topics/sdk/ota/ota_guide.html" id = "id-d3752e1163-link" > OTA 方案< / a > < / div > < / div > < / li > < li role = "treeitem" aria-expanded = "false" > < div data-tocid = "id-d3752e1283" class = "topicref" data-id = "id" data-state = "not-ready" > < span role = "button" tabindex = "0" aria-labelledby = "button-expand-action id-d3752e1283-link" class = "wh-expand-btn" > < / span > < div class = "title" > < a href = "../../../topics/sdk/xip/xip_user_guide.html" id = "id-d3752e1283-link" > XIP 方案 < / a > < / div > < / div > < / li > < li role = "treeitem" aria-expanded = "false" > < div dat
2025-04-23 17:54:31 +08:00
< / div >
< / nav >
< div class = "col-lg-7 col-md-9 col-sm-12" id = "wh_topic_body" >
< button id = "wh_close_publication_toc_button" class = "close-toc-button d-none" aria-label = "Toggle publishing table of content" aria-controls = "wh_publication_toc" aria-expanded = "true" >
< span class = "close-toc-icon-container" >
< span class = "close-toc-icon" > < / span >
< / span >
< / button >
< button id = "wh_close_topic_toc_button" class = "close-toc-button d-none" aria-label = "Toggle topic table of content" aria-controls = "wh_topic_toc" aria-expanded = "true" >
< span class = "close-toc-icon-container" >
< span class = "close-toc-icon" > < / span >
< / span >
< / button >
< div class = " wh_topic_content body " > < main role = "main" > < article class = "- topic/topic topic" role = "article" aria-labelledby = "ariaid-title1" >
< span class = "edit-link" style = "font-size:12px; opacity:0.6; text-align:right; vertical-align:middle" > < a target = "_blank" href = "http://aicdocco/taskstopics/sdk/app/backtrace.dita" > Edit online< / a > < / span > < h1 class = "- topic/title title topictitle1" id = "ariaid-title1" > Backtrace 栈回溯< / h1 >
2025-07-22 11:15:46 +08:00
< div class = "date inPage" > 16 May 2025< / div > < div style = "color: gray;" >
2025-04-23 17:54:31 +08:00
Read time: 4 minute(s)
< / div >
< div class = "- topic/body body" >
2025-07-22 11:15:46 +08:00
< p class = "- topic/p p" data-ofbid = "d115900e31__20250519091517" > Luban-Lite 提供 Backtrace
2025-04-23 17:54:31 +08:00
及解析功能,便于开发者准确定位软件调试中出现的系统崩溃问题,例如内存访问越界。在系统创建线程时,会分配栈内存空间,通过分析运行时栈内存的结构,逐层解析函数调用的历史记录,从而定位出软件异常的问题点。< / p >
2025-07-22 11:15:46 +08:00
< div class = "- topic/p p" data-ofbid = "d115900e34__20250519091517" > 本节适用于以下芯片系列:< ul class = "- topic/ul ul" id = "backtrace__ul_awd_1zw_52c" data-ofbid = "backtrace__ul_awd_1zw_52c" >
< li class = "- topic/li li" data-ofbid = "d115900e38__20250519091517" > D21x< / li >
< li class = "- topic/li li" data-ofbid = "d115900e41__20250519091517" > D13x< / li >
< li class = "- topic/li li" data-ofbid = "d115900e44__20250519091517" > D12x< / li >
< li class = "- topic/li li" data-ofbid = "d115900e47__20250519091517" > G73x< / li >
2025-04-23 17:54:31 +08:00
< / ul > < / div >
2025-07-22 11:15:46 +08:00
< p class = "- topic/p p" data-ofbid = "d115900e51__20250519091517" > 栈回溯功能的相关工具均已包含在最新 SDK 中,确保已更新至最新的 SDK。< / p >
2025-04-23 17:54:31 +08:00
< div class = "- topic/note note note note_note" id = "backtrace__note_pbr_xyw_52c" data-ofbid = "backtrace__note_pbr_xyw_52c" > < span class = "note__title" > 注:< / span > 在 Luban-Lite 中, Backtrace 及解析功能仅用于调试 RT-Thread 的多线程,无法用于调试
BootLoader。< / div >
< section class = "- topic/section section" id = "backtrace__section_mms_zzw_52c" data-ofbid = "backtrace__section_mms_zzw_52c" > < h2 class = "- topic/title title sectiontitle" > Backtrace 配置方法< / h2 >
2025-07-22 11:15:46 +08:00
< div class = "- topic/p p" data-ofbid = "d115900e62__20250519091517" > 在 menuconfig 中开启 Backtrace debug
2025-04-23 17:54:31 +08:00
功能,并修改编译链接脚本以支持栈回溯,以便在发生系统异常时打印出函数调用地址。详细配置流程如下所示:< div class = "- topic/note note note note_note" id = "backtrace__note_jgr_tgg_y2c" data-ofbid = "backtrace__note_jgr_tgg_y2c" > < span class = "note__title" > 注:< / span > 为避免量产软件的性能受影响,确保在量产软件中关闭 backtrace。< / div > < ol class = "- topic/ol ol" id = "backtrace__ol_bh1_xzw_52c" data-ofbid = "backtrace__ol_bh1_xzw_52c" >
2025-07-22 11:15:46 +08:00
< li class = "- topic/li li" data-ofbid = "d115900e68__20250519091517" > 在 SDK 的 menuconfig 功能配置界面,选择项目的 RT-Thread 配置页,并打开 Backtrace
2025-04-23 17:54:31 +08:00
调试功能:< pre class = "+ topic/pre pr-d/codeblock pre codeblock language-c" id = "backtrace__codeblock_dh1_xzw_52c" data-ofbid = "backtrace__codeblock_dh1_xzw_52c" > Drivers options --->
Drivers debug
[*] Enable Backtrace debug< / pre > < / li >
2025-07-22 11:15:46 +08:00
< li class = "- topic/li li" data-ofbid = "d115900e73__20250519091517" > 保存并退出配置界面。< / li >
< li class = "- topic/li li" data-ofbid = "d115900e76__20250519091517" > 修改编译链接脚本以支持栈回溯: < ul class = "- topic/ul ul" id = "backtrace__ul_fh1_xzw_52c" data-ofbid = "backtrace__ul_fh1_xzw_52c" >
< li class = "- topic/li li" data-ofbid = "d115900e80__20250519091517" > 在项目对应芯片目录中打开编译链接脚本,例如
2025-04-23 17:54:31 +08:00
< span class = "+ topic/ph sw-d/filepath ph filepath" > D12x/bsp/artinchip/sys/d21x/rtconfig.py< / span > 。< / li >
2025-07-22 11:15:46 +08:00
< li class = "- topic/li li" data-ofbid = "d115900e86__20250519091517" > 将 BACKTRACE = False 修改为 BACKTRACE = True: < / li >
2025-04-23 17:54:31 +08:00
< / ul > < pre class = "+ topic/pre pr-d/codeblock pre codeblock language-c" id = "backtrace__codeblock_hh1_xzw_52c" data-ofbid = "backtrace__codeblock_hh1_xzw_52c" > ...
# BACKTRACE = True
BACKTRACE = False
...< / pre > < / li >
2025-07-22 11:15:46 +08:00
< li class = "- topic/li li" data-ofbid = "d115900e92__20250519091517" > 保存文件并关闭编辑器。< / li >
2025-04-23 17:54:31 +08:00
< / ol > < / div >
< / section >
< section class = "- topic/section section" id = "backtrace__section_ih1_xzw_52c" data-ofbid = "backtrace__section_ih1_xzw_52c" > < h2 class = "- topic/title title sectiontitle" > 实例分析< / h2 >
2025-07-22 11:15:46 +08:00
< p class = "- topic/p p" data-ofbid = "d115900e103__20250519091517" > 以下是一个制造非法内存访问的示例代码,用于演示如何生成和解析栈回溯信息:< / p >
2025-04-23 17:54:31 +08:00
< ol class = "- topic/ol ol" id = "backtrace__ol_jh1_xzw_52c" data-ofbid = "backtrace__ol_jh1_xzw_52c" >
2025-07-22 11:15:46 +08:00
< li class = "- topic/li li" data-ofbid = "d115900e108__20250519091517" > 在 SDK 中加入下列代码进行编译、烧录:< div class = "- topic/note note note note_note" id = "backtrace__note_mss_2bx_52c" data-ofbid = "backtrace__note_mss_2bx_52c" > < span class = "note__title" > 注:< / span >
< p class = "- topic/p p" data-ofbid = "d115900e112__20250519091517" > 如需使用栈回溯,务必保证镜像和生成的 elf 文件对应,即编译一次、烧录一次、分析一次。< / p >
< / div > < p class = "- topic/p p" data-ofbid = "d115900e115__20250519091517" > 此段代码尝试写入一个空指针地址,导致存储访问故障。< / p > < pre class = "+ topic/pre pr-d/codeblock pre codeblock language-c" id = "backtrace__codeblock_lh1_xzw_52c" data-ofbid = "backtrace__codeblock_lh1_xzw_52c" > < strong class = "hl-keyword" > int< / strong > stack_protector_test(< strong class = "hl-keyword" > int< / strong > argc, < strong class = "hl-keyword" > char< / strong > **argv)
2025-04-23 17:54:31 +08:00
{
< strong class = "hl-keyword" > int< / strong > * p = NULL;
p = (< strong class = "hl-keyword" > int< / strong > *)< span class = "hl-number" > 0x80000000< / span > ;
*p = < span class = "hl-number" > 0x12345678< / span > ;
value = *p;
printf(< span class = "hl-string" > "addr:%p value:0x%08X\r
< / span > < span class = "hl-string" > ", p, value);
< / span > < strong class = "hl-keyword" > return< / strong > < span class = "hl-number" > 0< / span > ;
}
MSH_CMD_EXPORT(stack_protector_test test stack protector test test test test)
< / pre > < / li >
2025-07-22 11:15:46 +08:00
< li class = "- topic/li li" data-ofbid = "d115900e120__20250519091517" >
< div class = "- topic/p p" data-ofbid = "d115900e122__20250519091517" > 系统运行后,执行下列命令,并观察串口终端输出的错误信息和堆栈回溯:< pre class = "+ topic/pre pr-d/codeblock pre codeblock language-c" id = "backtrace__codeblock_oh1_xzw_52c" data-ofbid = "backtrace__codeblock_oh1_xzw_52c" > stack_protector_test< / pre > < / div >
< div class = "- topic/p p" data-ofbid = "d115900e127__20250519091517" > 串口终端的系统输出示例如下所示:< pre class = "+ topic/pre pr-d/codeblock pre codeblock language-c" id = "backtrace__codeblock_qxy_h1x_52c" data-ofbid = "backtrace__codeblock_qxy_h1x_52c" > CPU Exception: NO.< span class = "hl-number" > 7< / span >
2025-04-23 17:54:31 +08:00
x1: < span class = "hl-number" > 4002< / span > bf64 x2: < span class = "hl-number" > 30066270< / span > x3: < span class = "hl-number" > 30042< / span > d8c x4: deadbeef
x5: < span class = "hl-number" > 80007880< / span > x6: < span class = "hl-number" > 300662< / span > b4 x7: deadbeef x8: < span class = "hl-number" > 00000014< / span >
x9: < span class = "hl-number" > 30064212< / span > x10: < span class = "hl-number" > 00000001< / span > x11: < span class = "hl-number" > 80000000< / span > x12: < span class = "hl-number" > 12345678< / span >
x13: < span class = "hl-number" > 00000000< / span > x14: < span class = "hl-number" > 30064226< / span > x15: < span class = "hl-number" > 80000000< / span > x16: < span class = "hl-number" > 30064226< / span >
x17: fffffffd x18: < span class = "hl-number" > 400461< / span > ae x19: < span class = "hl-number" > 400< / span > bddf8 x20: < span class = "hl-number" > 40155f< / span > b8
x21: < span class = "hl-number" > 400< / span > bdf30 x22: < span class = "hl-number" > 0000007f< / span > x23: < span class = "hl-number" > 30044< / span > d04 x24: < span class = "hl-number" > 20636961< / span >
x25: < span class = "hl-number" > 400< / span > c45d4 x26: < span class = "hl-number" > 300641< / span > c2 x27: < span class = "hl-number" > 30064212< / span > x28: < span class = "hl-number" > 00000022< / span >
x29: < span class = "hl-number" > 0000005< / span > c x30: < span class = "hl-number" > 0000000< / span > a x31: deadbeef
mcause : < span class = "hl-number" > 0x38000007< / span >
mtval : < span class = "hl-number" > 0x00000000< / span >
mepc : < span class = "hl-number" > 0x400461c4< / span >
mstatus: < span class = "hl-number" > 0x80007880< / span >
__stext:< span class = "hl-number" > 0x40000000< / span > __etext:< span class = "hl-number" > 0x400bdfe0< / span > ,stack:
stack_addr:< span class = "hl-number" > 0x30064330< / span > stack_addr_end:< span class = "hl-number" > 0x30066330< / span >
< span class = "hl-number" > 0x0000007f< / span > < span class = "hl-number" > 0x00000009< / span > < span class = "hl-number" > 0x400c45c8< / span > < span class = "hl-number" > 0x4002bf64< / span >
< span class = "hl-number" > 0x0000001b< / span > < span class = "hl-number" > 0x30044d8c< / span > < span class = "hl-number" > 0x30064212< / span > < span class = "hl-number" > 0x00000000< / span >
< span class = "hl-number" > 0x00000000< / span > < span class = "hl-number" > 0x00000000< / span > < span class = "hl-number" > 0x00000000< / span > < span class = "hl-number" > 0x00000000< / span >
< span class = "hl-number" > 0x00000000< / span > < span class = "hl-number" > 0x00000000< / span > < span class = "hl-number" > 0x00000000< / span > < span class = "hl-number" > 0x00000000< / span >
< span class = "hl-number" > 0x0000007f< / span > < span class = "hl-number" > 0x00000009< / span > < span class = "hl-number" > 0x400c45c8< / span > < span class = "hl-number" > 0x000000fd< / span >
< span class = "hl-number" > 0x0000001b< / span > < span class = "hl-number" > 0x30044d8c< / span > < span class = "hl-number" > 0x30064190< / span > < span class = "hl-number" > 0x4002b9c0< / span >
< span class = "hl-number" > 0xdeadbeef< / span > < span class = "hl-number" > 0xdeadbeef< / span > < span class = "hl-number" > 0x00000000< / span > < span class = "hl-number" > 0x30064190< / span >
< span class = "hl-number" > 0xdeadbeef< / span > < span class = "hl-number" > 0xdeadbeef< / span > < span class = "hl-number" > 0xdeadbeef< / span > < span class = "hl-number" > 0x0dadbeef< / span >
< span class = "hl-number" > 0xdeadbeef< / span > < span class = "hl-number" > 0xdeadbeef< / span > < span class = "hl-number" > 0xdeadbeef< / span > < span class = "hl-number" > 0xdeadbeef< / span >
< span class = "hl-number" > 0xdeadbeef< / span > < span class = "hl-number" > 0xdeadbeef< / span > < span class = "hl-number" > 0xdeadbeef< / span > < span class = "hl-number" > 0xdeadbeef< / span >
< span class = "hl-number" > 0xdeadbeef< / span > < span class = "hl-number" > 0xdeadbeef< / span > < span class = "hl-number" > 0xdeadbeef< / span > < span class = "hl-number" > 0xdeadbeef< / span >
< span class = "hl-number" > 0xdeadbeef< / span > < span class = "hl-number" > 0xdeadbeef< / span > < span class = "hl-number" > 0xdeadbeef< / span > < span class = "hl-number" > 0x4001a874< / span >
[backtrace_call_stack:< span class = "hl-number" > 123< / span > ]__stext:< span class = "hl-number" > 0x40000000< / span > __etext:< span class = "hl-number" > 0x400bdfe0< / span >
< span class = "hl-number" > 0x400461c4< / span >
< span class = "hl-number" > 0x4002bf64< / span >
< span class = "hl-number" > 0x4002b9c0< / span >
< span class = "hl-number" > 0x4001a874< / span > < / pre > < / div >
< / li >
2025-07-22 11:15:46 +08:00
< li class = "- topic/li li" data-ofbid = "d115900e133__20250519091517" >
< p class = "- topic/p p" data-ofbid = "d115900e135__20250519091517" > 将串口终端的输出信息保存为 < span class = "+ topic/ph sw-d/filepath ph filepath" > txt< / span > 文本,并使用
2025-04-23 17:54:31 +08:00
< span class = "+ topic/ph sw-d/filepath ph filepath" > panic_parse.py< / span > 进行解析。< / p >
2025-07-22 11:15:46 +08:00
< div class = "- topic/p p" data-ofbid = "d115900e144__20250519091517" > 假设 backtrace 信息保存在根目录中,保存的输出示例 < span class = "+ topic/ph sw-d/filepath ph filepath" > txt< / span > 文件为
2025-04-23 17:54:31 +08:00
< span class = "+ topic/ph sw-d/filepath ph filepath" > kunlunpi-panic.txt< / span > ,则在 SDK
根目录执行如下操作命令:< pre class = "+ topic/pre pr-d/codeblock pre codeblock language-c" id = "backtrace__codeblock_tb2_51x_52c" data-ofbid = "backtrace__codeblock_tb2_51x_52c" > python3 tools/scripts/panic_parse.py -l ./kunlunpi-panic.txt< / pre > < / div >
< / li >
2025-07-22 11:15:46 +08:00
< li class = "- topic/li li" data-ofbid = "d115900e156__20250519091517" > 查看解析后的输出,确定导致异常的具体函数位置。< div class = "- topic/p p" data-ofbid = "d115900e158__20250519091517" > 解析结果示例如下,分析文件指明了函数调用的关系和导致异常的函数具体位置:< pre class = "+ topic/pre pr-d/codeblock pre codeblock language-c" id = "backtrace__codeblock_qh1_xzw_52c" data-ofbid = "backtrace__codeblock_qh1_xzw_52c" > CPU: RISC-V
2025-04-23 17:54:31 +08:00
ELF: output/d13x_kunlunpi88-nor_rt-thread_helloworld/images/d13x.elf
Toolchain: riscv64-unknown-elf
Text section: < span class = "hl-number" > 0x40000000< / span > - < span class = "hl-number" > 0x400bdfe0< / span > , size: < span class = "hl-number" > 778208< / span > Bytes
---------------------------------------------------------------
CPU Registers:
---------------------------------------------------------------
CPU Exception: < span class = "hl-number" > 7< / span > (Store/AMO Access Fault)
x1 (ra): < span class = "hl-number" > 0x4002bf64< / span > _msh_exec_cmd at kernel/rt-thread/components/finsh/msh.c:< span class = "hl-number" > 294< / span >
x2 (sp): < span class = "hl-number" > 0x30066270< / span >
x3 (gp): < span class = "hl-number" > 0x30042d8c< / span >
x4 (tp): < span class = "hl-number" > 0xdeadbeef< / span >
x5 (t0): < span class = "hl-number" > 0x80007880< / span >
x6 (t1): < span class = "hl-number" > 0x300662b4< / span >
x7 (t2): < span class = "hl-number" > 0xdeadbeef< / span >
x8 (s0/fp): < span class = "hl-number" > 0x00000014< / span >
x9 (s1): < span class = "hl-number" > 0x30064212< / span >
x10 (a0): < span class = "hl-number" > 0x00000001< / span >
x11 (a1): < span class = "hl-number" > 0x80000000< / span >
x12 (a2): < span class = "hl-number" > 0x12345678< / span >
x13 (a3): < span class = "hl-number" > 0x00000000< / span >
x14 (a4): < span class = "hl-number" > 0x30064226< / span >
x15 (a5): < span class = "hl-number" > 0x80000000< / span >
x16 (a6): < span class = "hl-number" > 0x30064226< / span >
x17 (a7): < span class = "hl-number" > 0xfffffffd< / span >
x18 (s2): < span class = "hl-number" > 0x400461ae< / span > stack_protector_test at packages/artinchip/lvgl-ui/aic_ui.c:< span class = "hl-number" > 64< / span >
x19 (s3): < span class = "hl-number" > 0x400bddf8< / span > __console_init_start at ??:?
x20 (s4): < span class = "hl-number" > 0x40155fb8< / span >
x21 (s5): < span class = "hl-number" > 0x400bdf30< / span > __fsymtab_end at ??:?
x22 (s6): < span class = "hl-number" > 0x0000007f< / span >
x23 (s7): < span class = "hl-number" > 0x30044d04< / span >
x24 (s8): < span class = "hl-number" > 0x20636961< / span >
x25 (s9): < span class = "hl-number" > 0x400c45d4< / span >
x26 (s10): < span class = "hl-number" > 0x300641c2< / span >
x27 (s11): < span class = "hl-number" > 0x30064212< / span >
x28 (t3): < span class = "hl-number" > 0x00000022< / span >
x29 (t4): < span class = "hl-number" > 0x0000005c< / span >
x30 (t5): < span class = "hl-number" > 0x0000000a< / span >
x31 (t6): < span class = "hl-number" > 0xdeadbeef< / span >
mcause: < span class = "hl-number" > 0x00000000< / span >
mtval: < span class = "hl-number" > 0x00000000< / span >
mepc: < span class = "hl-number" > 0x00000000< / span >
mstatus: < span class = "hl-number" > 0x00000000< / span >
---------------------------------------------------------------
Call Stack:
---------------------------------------------------------------
Stack section: < span class = "hl-number" > 0x30064330< / span > - < span class = "hl-number" > 0x30066330< / span > , size: < span class = "hl-number" > 8192< / span > Bytes
< span class = "hl-number" > 0< / span > : [< span class = "hl-number" > 0x4002bf64< / span > ] _msh_exec_cmd at kernel/rt-thread/components/finsh/msh.c:< span class = "hl-number" > 294< / span >
< span class = "hl-number" > 1< / span > : [< span class = "hl-number" > 0x4002b9c0< / span > ] finsh_thread_entry at kernel/rt-thread/components/finsh/shell.c:< span class = "hl-number" > 657< / span >
< span class = "hl-number" > 2< / span > : [< span class = "hl-number" > 0x4001a874< / span > ] _thread_exit at kernel/rt-thread/src/thread.c:< span class = "hl-number" > 91< / span > < / pre > < / div > < / li >
< / ol >
< / section >
< / div >
< / article > < / main > < / div >
< / div >
< nav role = "navigation" id = "wh_topic_toc" aria-label = "On this page" class = "col-lg-2 d-none d-lg-block navbar d-print-none" >
< div id = "wh_topic_toc_content" >
< div class = " wh_topic_toc " > < div class = "wh_topic_label" > 在本页上< / div > < ul > < li class = "section-item" > < div class = "section-title" > < a href = "#backtrace__section_mms_zzw_52c" data-tocid = "backtrace__section_mms_zzw_52c" > Backtrace 配置方法< / a > < / div > < / li > < li class = "section-item" > < div class = "section-title" > < a href = "#backtrace__section_ih1_xzw_52c" data-tocid = "backtrace__section_ih1_xzw_52c" > 实例分析< / a > < / div > < / li > < / ul > < / div >
< / div >
< / nav >
< / div >
< / div >
< / div >
< footer class = "navbar navbar-default wh_footer" >
< div class = " footer-container mx-auto " >
< title > footer def< / title >
< style >
.p1 {
font-family: FangZhengShuSong, Times, serif;
}
.p2 {
font-family: Arial, Helvetica, sans-serif;
}
.p3 {
font-family: "Lucida Console", "Courier New", monospace;
}
< / style >
< div class = "webhelp.fragment.footer" >
< p class = "p1" > Copyright © 2019-2025 广东匠芯创科技有限公司. All rights reserved.< / p >
< / div >
< div >
< div class = "generation_time" >
2025-07-22 11:15:46 +08:00
Update Time: 2025-05-19
2025-04-23 17:54:31 +08:00
< / div >
< / div >
< / div >
< / footer >
< div id = "go2top" class = "d-print-none" >
< span class = "oxy-icon oxy-icon-up" > < / span >
< / div >
< div id = "modal_img_large" class = "modal" >
< span class = "close oxy-icon oxy-icon-remove" > < / span >
< div id = "modal_img_container" > < / div >
< div id = "caption" > < / div >
< / div >
< script src = "${pd}/publishing/publishing-styles-AIC-template/js/custom.js" defer = "defer" > < / script >
< / body >
< / html >