女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用Ozone調試基于nRF9160 Zephyr應用程序

麥克泰技術 ? 來源:麥克泰技術 ? 2025-02-25 17:07 ? 次閱讀

Ozone是SEGGER免費的嵌入式軟件調試器。它是一個強大的工具,可以讓你深入了解嵌入式系統中發生的事情。它在調試nRF9160 Zephyr應用程序時特別有用。整理多個線程和多映像構建可能很困難,但這就是你想要的工具。

在我們之前的博文《采取下一步:在Zephyr上使用SEGGER Ozone和SystemView進行調試》中,Chris Gammell撰寫了有關如何設置SEGGER Ozone項目,以調試在i.MX RT1060評估套件上運行的Zephyr應用程序。這是在Ozone中調試Zephyr應用程序和分析RTOS運行時行為的一個很好的介紹。

當我嘗試設置一個類似的Ozone項目來調試Nordic nRF9160 SIP開發板時,我在此過程中遇到了一些困難。今天,我將分享我所學到的知識。

在本文中,我將介紹如何:

? 配置nRF9160 Zephyr應用程序以進行線程感知調試。

? 使用新建項目向導為nRF9160創建Ozone項目。

? 修改Ozone工程以支持調試nRF9160多映像構建。

硬件配置

在下面的示例中,我將使用Nordic nRF9160 DK板。這款來自Nordic的開發套件在電路板中內置了SEGGER J-Link OB調試器,因此不需要外部J-Link調試器來跟進示例(SEGGER Ozone需要J-Link支持)。

b0f4feb0-f325-11ef-9310-92fbcf53809c.png

Zephyr中的線程感知的支持

在使用Golioth Zephyr SDK構建的典型Zephyr應用程序中,將有多個線程。例如,一個用于應用程序的主循環,一個用于Golioth系統客戶端,其他用于UART shell、日志記錄子系統、網絡管理等。

SEGGER為Ozone提供了一個Zephyr RTOS插件,可以顯示每個線程的狀態,但它要求Zephyr固件在構建時支持線程感知調試。Zephyr提供了一個CONFIG_DEBUG_THREAD_INFO Kconfig符號,該符號指示內核維護所有線程的列表,線程名稱在Ozone中可見。

雖然你可以簡單地將CONFIG_DEBUG_THREAD_INFO=y添加到應用程序的prj.conf文件中,但你可能只想在構建時啟用這些額外的調試信息。我們可以創建一個額外的debug.conf Kconfig文件,只有當我們將-DEXTRA_CONF_FILE=debug.conf參數傳遞給構建系統時,該文件才會被合并。

由于本文是關于使用Ozone進行線程感知調試的,因此我們將使用nRF Connect SDK Zephyr存儲庫中的zephyr/samples/basic/threads/應用程序作為本文的示例應用程序。

如果這是你第一次構建Zephyr示例應用程序之一,請確保先完成nRF Connect SDK安裝,并確保你的開發環境設置正確。

如何啟用線程感知

首先創建一個zephyr/samples/basic/threads/debug.conf文件并添加以下命令行:

zephyr/samples/basic/threads/debug.conf

CONFIG_DEBUG_THREAD_INFO=y
# CONFIG_DEBUG_THREAD_INFO needs the heap memory pool to
# be defined for this app
CONFIG_HEAP_MEM_POOL_SIZE=256

接下來,構建固件,指定需要的debug.conf文件并合并到構建配置中:

cd /
west build -p -b nrf9160dk_nrf9160_ns zephyr/samples/basic/threads/ -- -
DEXTRA_CONF_FILE="debug.conf"

如果構建成功完成,你將看到我們在Ozone中啟動調試會話所需的build/zephyr/zephyr.elf 文件

創建Ozone項目

現在我們已經構建了固件,可以啟動Ozone并使用New Project Wizard創建一個Ozone項目:

b18c1278-f325-11ef-9310-92fbcf53809c.png

選擇nRF9160_xxAA芯片。

b1a14698-f325-11ef-9310-92fbcf53809c.png

選擇使用J-Link仿真器

b1bd57d4-f325-11ef-9310-92fbcf53809c.png

選擇build/zephyr/zephyr.elf該文件在前面討論中構建生成。

b1c939be-f325-11ef-9310-92fbcf53809c.png

其他這些選擇缺省。

b1e6d38e-f325-11ef-9310-92fbcf53809c.png

單擊“Finish”后,您將看到Ozone項目窗口出現。在“Console”窗口中,運行以下命令以加載Zephyr RTOS插件:

Project.SetOSPlugin("ZephyrPlugin.js");

b20115f0-f325-11ef-9310-92fbcf53809c.png

現在,應該在Ozone項目中看到一個新的“Zephyr”窗口(如果沒有,請單擊“View”→“Zephyr”以顯示該窗口):

b21d8622-f325-11ef-9310-92fbcf53809c.png

最后,保存項目文件,點擊“File”→“Save Project as…”:

b22c161a-f325-11ef-9310-92fbcf53809c.png

啟動調試會話

現在我們已經配置了Ozone項目,我們可以啟動調試會話了。

點擊“Debug”→“Start Debug Session”→“Download& Reset Pro”

b2544478-f325-11ef-9310-92fbcf53809c.png

奇怪的是,當固件開始運行時,將看到一個彈出窗口,指示目標已停止在HardFault異常狀態!

b26836cc-f325-11ef-9310-92fbcf53809c.png

此時,您可能想知道這里發生了什么......

這里有一個提示:答案與多映像構建有關。

缺少的步驟:

燒入合并的文件映像

你可能已經注意到,我們傳遞給west build(nrf9160dk_nrf9160_ns)的board參數以_ns結尾。此后綴表示固件將使用Trusted Firmware-M(TF-M)構建。這是ARMIoT安全框架的參考實現,稱為平臺安全架構(PSA)。

TF-M使用nRF9160的Cortex-M33 MCU的ARM TrustZone安全功能將MCU劃分為安全處理環境(SPE)和非安全處理環境(NSPE)。

簡而言之,引導過程的工作原理如下:

1. 當MCU啟動時,它開始在安全環境(SPE)中執行。

2. 引導過程可以選擇從使用NSIB和/或MCUboot的安全引導加載程序鏈開始。

3. 如果使用,引導加載程序會啟動TF-M,這會將MCU內存和外設的一部分配置為非安全。

4. TF-M啟動在非安全環境(NSPE)中運行的Zephyr應用程序。

當我們針對_ns構建目標進行構建時,TF-M鏡像會自動構建并與Zephyr應用程序鏈接。如果查看build/zephyr/輸出目錄,您將看到一個名為merged.hex的文件,這是一個合并文件,其中包含MCUboot引導加載程序(可選)、TF-M安全映像和非安全Zephyr應用程序。

修復Ozone項目文件

我們將直接在Ozone項目文件中進行一些更改,該文件可以通過單擊“File”→“Edit Project File”在Ozone中打開:

b29a3d3e-f325-11ef-9310-92fbcf53809c.png

燒寫合并的映像

導航到Ozone項目文件的TargetDownload部分并添加以下內容,以將Ozone配置為刷寫合并的圖像(更改路徑以匹配項目中的合并映像文件):

/*********************************************************************
*
* TargetDownload
*
* Function description
* Replaces the default program download routine. Optional.
*
**********************************************************************
*/
void TargetDownload(void)
{
Exec.Download("$(ProjectDir)/build/zephyr/merged.hex");
}

修復矢量表和PC地址

導航到Ozone項目文件的_SetupTarget部分,然后進行以下更改:

1. 將vector table地址設置為0

2. 從vector表中讀取入口點程序計數器地址

/*********************************************************************
*
* _SetupTarget
*
* Function description
* Setup the target.
* Called by AfterTargetReset() and AfterTargetDownload().
*
* Auto-generated function. May be overridden by Ozone.
*
**********************************************************************
*/
void _SetupTarget(void) {
unsigned int SP;
unsigned int PC;
unsigned int VectorTableAddr;
VectorTableAddr = 0;
//
// Set up initial stack pointer
//
SP = Target.ReadU32(VectorTableAddr);
if (SP != 0xFFFFFFFF) {
Target.SetReg("SP", SP);
}
//
// Set up entry point PC
//
PC = Target.ReadU32(VectorTableAddr + 4);
if (PC != 0xFFFFFFFF) {
Target.SetReg("PC", PC);
} else {
Util.Error("Project script error: failed to set up entry point PC", 1);
}
}

保存項目文件時,您應該會看到一個模式彈出窗口,詢問您是否要重新加載項目。

選擇“Yes”:

b2b5a236-f325-11ef-9310-92fbcf53809c.png

啟動調試會話

b2544478-f325-11ef-9310-92fbcf53809c.png

映像文件燒入到芯片后,你應該可以看到調試器停在main位置:

b2dfa69e-f325-11ef-9310-92fbcf53809c.png

點擊“Debug”→“Continue”:

b2fd4ad2-f325-11ef-9310-92fbcf53809c.png

這次固件可以正常運行沒有出現異常。

總結

希望這可以幫助你開始使用Ozone調試nRF9160。nRF9160在Zephyr項目中獲得了完全支持,并在Golioth物聯網設備管理平臺中具有最高級別的支持。借助Golioth,你可以連接和保護設備、將傳感器數據發送到Web、無線更新固件,以及使用IoT云擴展你的覆蓋度。

麥克泰技術是SEGGER產品在中國的代理商,具有超過20年嵌入式實時操作系統和工具的市場、服務和培訓經驗,已經錄制許多SEGGER視頻課程撰寫博客文章,了解更多產品聯系麥克泰技術[email protected]

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5141

    文章

    19537

    瀏覽量

    315022
  • 調試
    +關注

    關注

    7

    文章

    607

    瀏覽量

    34518
  • 開發板
    +關注

    關注

    25

    文章

    5530

    瀏覽量

    102335
  • 應用程序
    +關注

    關注

    38

    文章

    3322

    瀏覽量

    58733
  • Zephyr
    +關注

    關注

    0

    文章

    35

    瀏覽量

    6234

原文標題:使用Ozone調試基于nRF9160 Zephyr應用程序

文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    恩智浦分享Zephyr調試技巧

    前面幾期中,我們著重給大家介紹了如何搭建Zephyr開發環境,以及如何添加自己的應用代碼。今天讓我們開始一個新的篇章:Zephyr調試技巧以及介紹Ozone進行
    的頭像 發表于 03-13 09:05 ?1067次閱讀

    Nordic nRF9160 SiP LTE-M/NB-IoT模塊成功通過一系列主要資格和認證

    Nordic Semiconductor宣布其nRF9160 SiP LTE-M/NB-IoT和GPS蜂窩IoT模塊已成功地通過了一系列主要資格和認證。
    發表于 07-05 16:20 ?5803次閱讀

    9160 gps 定位需要多長時間呢?

    nRF9160 在 GNSS(GPS)聯網獲取定位時,所需時間主要取決于“首次定位時間”(Time To First Fix, TTFF)。在典型的冷啟動(無輔助數據、無歷史信息)下,nRF9160
    發表于 05-27 23:02

    NRF9160低功耗蜂窩IOT方案

    nRF9160 整合應用 MCU、全 LTE 數據機、接收器前端 (RF) 和電源管理,以 10 mm x 16 mm x 1 mm 的封裝,為行動 IoT (cIoT) 提供小型解決方案。此元件
    發表于 01-23 15:56

    SEGGER Ozone調試器使用攻略!

    )設置PC和堆棧指針的初始值如何獲取,可以從文件中獲取或者手動指定。如無特殊要求,保持默認選擇即可。(5)燒錄文件并進入調試工作窗口。點擊左上角的綠色圖標,下載并復位應用程序。圖標右側的箭頭為常規的全速
    發表于 08-11 17:10

    你們有使用過Nordic的NRF9160來做遠距離通訊嗎?

    針對出口到歐美的手表,需要GPS+LTE-M傳輸數據,手表尺寸要小,而且足夠省電,是否有合適的模塊呢? 大家看看NRF9160是否可以符合使用呢?Nordic Semiconductor宣布推出
    發表于 05-14 15:11

    如何在Eclipse中配置K64F Zephyr/項目的調試

    Target 說:zephyr/zephyr.elf。我的方法是復制本機項目的調試配置,而不是更改條目以使其適合 Zephyr 構建的應用程序
    發表于 03-29 08:58

    如何使用ozone調試雙核應用?

    在第二個core的ozone中, 點擊開始調試, 就不正常了
    發表于 05-26 08:11

    Nordic nRF9160 SiP提供了強大的數據處理能力 并能透過云端進行分析

    Nordic Semiconductor宣布總部位于日本東京的能源解決方案企業West Group,選擇具有整合式LTE-M/NB-IoT調制解調器和GPS的nRF9160低功耗系統級封裝(SiP
    的頭像 發表于 03-10 14:55 ?4744次閱讀

    nRF9160 SiP認證世界最大型NB-IoT網絡

    nRF9160 SiP認證可讓物聯網產品開發人員受惠于世界最大型NB-IoT網絡。 *我們屢獲殊榮并且集成了LTE-M/NB-IoT調制解調器和GPS的nRF9160低功耗系統級封裝(SiP)產品
    的頭像 發表于 10-19 10:12 ?3374次閱讀

    如何開發你的第一個NCS(Zephyr)應用程序

    ,那么推薦使用nRF5 SDK 如果你選擇的是Nordic最新產品系列,比如nRF53或者nRF9160,那么請選擇NCS SDK 還有一種特殊情況,雖然你選擇的是nRF52芯片,但需
    的頭像 發表于 12-29 09:47 ?8678次閱讀
    如何開發你的第一個NCS(<b class='flag-5'>Zephyr</b>)<b class='flag-5'>應用程序</b>

    Nordic Semiconductor宣布推出nRF 云定位服務

    服務”,這項云產品使得客戶能夠為自身的基于nRF9160系統級封裝(SiP)的蜂窩物聯網設備獲取更豐富、快速和準確的商業定位服務。 nRF 云定位服務建立在Nordic多功能蜂窩物聯網連接使能器
    的頭像 發表于 08-16 15:22 ?2551次閱讀

    如何使用Ozone調試功能

    Ozone是用于J-link和J-Trace的多平臺調試,分析工具。獨立的圖形化界面,可加載IAR,Keil,Gcc,Clang/LLVM等工具鏈生成的Elf/Dwarf可執行文件,進行C/C++
    的頭像 發表于 09-06 11:26 ?6304次閱讀

    Nordic超低功耗窄帶蜂窩nRF9160的典型應用

    nRF9160 在緊湊的 10x16x1.04 mm 的 SIP 封裝中集成了 ArmCortex-M33 應用處理器、集成 RF 前端(RFFE)的多模式 LTE-M/NB-IoT 調制解調器、GPS 和電源管理。
    發表于 10-13 14:30 ?1330次閱讀

    使用Percepio View免費跟蹤工具分析Zephyr應用

    Percepio View免費跟蹤工具現在可以針對Zephyr應用程序進行跟蹤和可視化分析了。Percepio View可以幫助開發人員理解和調試Zephyr中的固定優先級的多線程行為
    的頭像 發表于 05-27 15:08 ?115次閱讀
    使用Percepio View免費跟蹤工具分析<b class='flag-5'>Zephyr</b>應用