chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用Ozone調(diào)試基于nRF9160 Zephyr應(yīng)用程序

麥克泰技術(shù) ? 來源:麥克泰技術(shù) ? 2025-02-25 17:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Ozone是SEGGER免費(fèi)的嵌入式軟件調(diào)試器。它是一個(gè)強(qiáng)大的工具,可以讓你深入了解嵌入式系統(tǒng)中發(fā)生的事情。它在調(diào)試nRF9160 Zephyr應(yīng)用程序時(shí)特別有用。整理多個(gè)線程和多映像構(gòu)建可能很困難,但這就是你想要的工具。

在我們之前的博文《采取下一步:在Zephyr上使用SEGGER Ozone和SystemView進(jìn)行調(diào)試》中,Chris Gammell撰寫了有關(guān)如何設(shè)置SEGGER Ozone項(xiàng)目,以調(diào)試在i.MX RT1060評估套件上運(yùn)行的Zephyr應(yīng)用程序。這是在Ozone中調(diào)試Zephyr應(yīng)用程序和分析RTOS運(yùn)行時(shí)行為的一個(gè)很好的介紹。

當(dāng)我嘗試設(shè)置一個(gè)類似的Ozone項(xiàng)目來調(diào)試Nordic nRF9160 SIP開發(fā)板時(shí),我在此過程中遇到了一些困難。今天,我將分享我所學(xué)到的知識。

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

? 配置nRF9160 Zephyr應(yīng)用程序以進(jìn)行線程感知調(diào)試。

? 使用新建項(xiàng)目向?qū)閚RF9160創(chuàng)建Ozone項(xiàng)目。

? 修改Ozone工程以支持調(diào)試nRF9160多映像構(gòu)建。

硬件配置

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

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

Zephyr中的線程感知的支持

在使用Golioth Zephyr SDK構(gòu)建的典型Zephyr應(yīng)用程序中,將有多個(gè)線程。例如,一個(gè)用于應(yīng)用程序的主循環(huán),一個(gè)用于Golioth系統(tǒng)客戶端,其他用于UART shell、日志記錄子系統(tǒng)、網(wǎng)絡(luò)管理等。

SEGGER為Ozone提供了一個(gè)Zephyr RTOS插件,可以顯示每個(gè)線程的狀態(tài),但它要求Zephyr固件在構(gòu)建時(shí)支持線程感知調(diào)試。Zephyr提供了一個(gè)CONFIG_DEBUG_THREAD_INFO Kconfig符號,該符號指示內(nèi)核維護(hù)所有線程的列表,線程名稱在Ozone中可見。

雖然你可以簡單地將CONFIG_DEBUG_THREAD_INFO=y添加到應(yīng)用程序的prj.conf文件中,但你可能只想在構(gòu)建時(shí)啟用這些額外的調(diào)試信息。我們可以創(chuàng)建一個(gè)額外的debug.conf Kconfig文件,只有當(dāng)我們將-DEXTRA_CONF_FILE=debug.conf參數(shù)傳遞給構(gòu)建系統(tǒng)時(shí),該文件才會被合并。

由于本文是關(guān)于使用Ozone進(jìn)行線程感知調(diào)試的,因此我們將使用nRF Connect SDK Zephyr存儲庫中的zephyr/samples/basic/threads/應(yīng)用程序作為本文的示例應(yīng)用程序。

如果這是你第一次構(gòu)建Zephyr示例應(yīng)用程序之一,請確保先完成nRF Connect SDK安裝,并確保你的開發(fā)環(huán)境設(shè)置正確。

如何啟用線程感知

首先創(chuàng)建一個(gè)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

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

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

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

創(chuàng)建Ozone項(xiàng)目

現(xiàn)在我們已經(jīng)構(gòu)建了固件,可以啟動Ozone并使用New Project Wizard創(chuàng)建一個(gè)Ozone項(xiàng)目:

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該文件在前面討論中構(gòu)建生成。

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

其他這些選擇缺省。

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

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

Project.SetOSPlugin("ZephyrPlugin.js");

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

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

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

最后,保存項(xiàng)目文件,點(diǎn)擊“File”→“Save Project as…”:

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

啟動調(diào)試會話

現(xiàn)在我們已經(jīng)配置了Ozone項(xiàng)目,我們可以啟動調(diào)試會話了。

點(diǎn)擊“Debug”→“Start Debug Session”→“Download& Reset Pro”

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

奇怪的是,當(dāng)固件開始運(yùn)行時(shí),將看到一個(gè)彈出窗口,指示目標(biāo)已停止在HardFault異常狀態(tài)!

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

此時(shí),您可能想知道這里發(fā)生了什么......

這里有一個(gè)提示:答案與多映像構(gòu)建有關(guān)。

缺少的步驟:

燒入合并的文件映像

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

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

簡而言之,引導(dǎo)過程的工作原理如下:

1. 當(dāng)MCU啟動時(shí),它開始在安全環(huán)境(SPE)中執(zhí)行。

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

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

4. TF-M啟動在非安全環(huán)境(NSPE)中運(yùn)行的Zephyr應(yīng)用程序。

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

修復(fù)Ozone項(xiàng)目文件

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

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

燒寫合并的映像

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

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

修復(fù)矢量表和PC地址

導(dǎo)航到Ozone項(xiàng)目文件的_SetupTarget部分,然后進(jìn)行以下更改:

1. 將vector table地址設(shè)置為0

2. 從vector表中讀取入口點(diǎn)程序計(jì)數(shù)器地址

/*********************************************************************
*
* _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);
}
}

保存項(xiàng)目文件時(shí),您應(yīng)該會看到一個(gè)模式彈出窗口,詢問您是否要重新加載項(xiàng)目。

選擇“Yes”:

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

啟動調(diào)試會話

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

映像文件燒入到芯片后,你應(yīng)該可以看到調(diào)試器停在main位置:

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

點(diǎn)擊“Debug”→“Continue”:

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

這次固件可以正常運(yùn)行沒有出現(xiàn)異常。

總結(jié)

希望這可以幫助你開始使用Ozone調(diào)試nRF9160。nRF9160在Zephyr項(xiàng)目中獲得了完全支持,并在Golioth物聯(lián)網(wǎng)設(shè)備管理平臺中具有最高級別的支持。借助Golioth,你可以連接和保護(hù)設(shè)備、將傳感器數(shù)據(jù)發(fā)送到Web、無線更新固件,以及使用IoT云擴(kuò)展你的覆蓋度。

麥克泰技術(shù)是SEGGER產(chǎn)品在中國的代理商,具有超過20年嵌入式實(shí)時(shí)操作系統(tǒng)和工具的市場、服務(wù)和培訓(xùn)經(jīng)驗(yàn),已經(jīng)錄制許多SEGGER視頻課程撰寫博客文章,了解更多產(chǎn)品聯(lián)系麥克泰技術(shù)Info@bmrtech.com。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5152

    文章

    19676

    瀏覽量

    317718
  • 調(diào)試
    +關(guān)注

    關(guān)注

    7

    文章

    612

    瀏覽量

    34741
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5683

    瀏覽量

    104886
  • 應(yīng)用程序
    +關(guān)注

    關(guān)注

    38

    文章

    3337

    瀏覽量

    59047
  • Zephyr
    +關(guān)注

    關(guān)注

    0

    文章

    38

    瀏覽量

    6302

原文標(biāo)題:使用Ozone調(diào)試基于nRF9160 Zephyr應(yīng)用程序

文章出處:【微信號:麥克泰技術(shù),微信公眾號:麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    恩智浦分享Zephyr調(diào)試技巧

    前面幾期中,我們著重給大家介紹了如何搭建Zephyr開發(fā)環(huán)境,以及如何添加自己的應(yīng)用代碼。今天讓我們開始一個(gè)新的篇章:Zephyr調(diào)試技巧以及介紹Ozone進(jìn)行
    的頭像 發(fā)表于 03-13 09:05 ?1304次閱讀

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

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

    9160 gps 定位需要多長時(shí)間呢?

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

    NRF9160低功耗蜂窩IOT方案

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

    SEGGER Ozone調(diào)試器使用攻略!

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

    你們有使用過Nordic的NRF9160來做遠(yuǎn)距離通訊嗎?

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

    如何在Eclipse中配置K64F Zephyr/項(xiàng)目的調(diào)試?

    Target 說:zephyr/zephyr.elf。我的方法是復(fù)制本機(jī)項(xiàng)目的調(diào)試配置,而不是更改條目以使其適合 Zephyr 構(gòu)建的應(yīng)用程序
    發(fā)表于 03-29 08:58

    如何使用ozone調(diào)試雙核應(yīng)用?

    在第二個(gè)core的ozone中, 點(diǎn)擊開始調(diào)試, 就不正常了
    發(fā)表于 05-26 08:11

    Nordic nRF9160 SiP提供了強(qiáng)大的數(shù)據(jù)處理能力 并能透過云端進(jìn)行分析

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

    nRF9160 SiP認(rèn)證世界最大型NB-IoT網(wǎng)絡(luò)

    nRF9160 SiP認(rèn)證可讓物聯(lián)網(wǎng)產(chǎn)品開發(fā)人員受惠于世界最大型NB-IoT網(wǎng)絡(luò)。 *我們屢獲殊榮并且集成了LTE-M/NB-IoT調(diào)制解調(diào)器和GPS的nRF9160低功耗系統(tǒng)級封裝(SiP)產(chǎn)品
    的頭像 發(fā)表于 10-19 10:12 ?3483次閱讀

    如何開發(fā)你的第一個(gè)NCS(Zephyr)應(yīng)用程序

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

    Nordic Semiconductor宣布推出nRF 云定位服務(wù)

    服務(wù)”,這項(xiàng)云產(chǎn)品使得客戶能夠?yàn)樽陨淼幕?b class='flag-5'>nRF9160系統(tǒng)級封裝(SiP)的蜂窩物聯(lián)網(wǎng)設(shè)備獲取更豐富、快速和準(zhǔn)確的商業(yè)定位服務(wù)。 nRF 云定位服務(wù)建立在Nordic多功能蜂窩物聯(lián)網(wǎng)連接使能器
    的頭像 發(fā)表于 08-16 15:22 ?2608次閱讀

    如何使用Ozone調(diào)試功能

    Ozone是用于J-link和J-Trace的多平臺調(diào)試,分析工具。獨(dú)立的圖形化界面,可加載IAR,Keil,Gcc,Clang/LLVM等工具鏈生成的Elf/Dwarf可執(zhí)行文件,進(jìn)行C/C++
    的頭像 發(fā)表于 09-06 11:26 ?6528次閱讀

    Nordic超低功耗窄帶蜂窩nRF9160的典型應(yīng)用

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

    使用Percepio View免費(fèi)跟蹤工具分析Zephyr應(yīng)用

    Percepio View免費(fèi)跟蹤工具現(xiàn)在可以針對Zephyr應(yīng)用程序進(jìn)行跟蹤和可視化分析了。Percepio View可以幫助開發(fā)人員理解和調(diào)試Zephyr中的固定優(yōu)先級的多線程行為
    的頭像 發(fā)表于 05-27 15:08 ?215次閱讀
    使用Percepio View免費(fèi)跟蹤工具分析<b class='flag-5'>Zephyr</b>應(yīng)用