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

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

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

Harmony Configurator配置編程教程及試驗

電子工程師 ? 來源:網(wǎng)絡(luò)整理 ? 2018-02-01 03:59 ? 次閱讀

首先下載官方的開發(fā)工具,包括MPLAB、XC32、Harmony,但是要想在MPLAB中創(chuàng)建Harmony的工程,得按照help_harmony_vol_I.pdf中的說明,先在MPLAB中安裝harmony的plug-in。

1

接下來進入我們的主題——殺雞就要用牛刀,點燈怎么用牛刀呢?那就把uCOS跑起來吧,在任務(wù)中去點燈!

原本的計劃是拿Micrium官網(wǎng)PIC32的BSP包過來移植,但是簡單地看了看Harmony的介紹文檔之后,發(fā)現(xiàn)它竟然支持常用的幾款RTOS,其中就有uCOS-III,隨即決定用Harmony創(chuàng)建uCOS的工程。創(chuàng)建工程、配置系統(tǒng)時鐘這兩步和參考文章中的方法都一樣,不羅嗦了;接下來開始就要自己配置Harmony Configurator了

1. 在Options中將Third Party Libraries中的uC/OS-III打開

2

2. 在_SYS_Tasks中點燈,后面的延遲1000個tick對于系統(tǒng)的默認(rèn)配置來說就是延時1秒

3

然后我就發(fā)現(xiàn)沒有其他需要配置的了,難道移植uCOS的工作就這么結(jié)束了?這么簡單?不可能吧???趕快生成代碼、編譯、加載到板子上跑一下,果然沒那么順利,燈不閃。。。沒辦法,只能debug定位了。好在板子上自帶jtag調(diào)試模塊,打開MPLAB的debug功能,發(fā)現(xiàn)板子死在這兒了,異常?。?!估計又得調(diào)一陣了。。。

4

不得不說MPLAB的調(diào)試功能還是相當(dāng)強大的,Call Stack里還能找到發(fā)生異常的點,竟然在kernel中死了,按說uCOS的kernel已經(jīng)很成熟了,不應(yīng)該出這種低級問題

5

在前一句打個斷點看看異常是怎么發(fā)生的,結(jié)果令人詫異:就在給*p_ts賦值的時候發(fā)生了異常!這就是個局部變量啊,怎么能導(dǎo)致異常呢,看看它的地址確實有些詭異

6

翻開PIC32MX470的芯片手冊,找到芯片的memory map,發(fā)現(xiàn)0x9D0035FC竟然是Program Flash空間的地址,就這么用指針賦值的話肯定非法,可是p_ts是什么時候變成的這個值呢?

7

再仔細(xì)往前找,發(fā)現(xiàn)在發(fā)生異常前kernel有發(fā)生過調(diào)度,難道是調(diào)度之后寄存器恢復(fù)錯了?再跟下去發(fā)現(xiàn)確實是這樣,只要os調(diào)度后p_ts就不對了。我們知道uCOS的任務(wù)現(xiàn)場是存在棧中的,難不成有棧越界?工程里又沒什么應(yīng)用代碼,應(yīng)該不是應(yīng)用代碼的問題,那會不會是配置的問題呢?查了下配置默認(rèn)的最小堆棧size是64,系統(tǒng)中除了idle任務(wù)的堆棧是64,其他的都至少是512。MIPS和ARM不一樣,有32個通用寄存器,難不成64的堆棧size對保存現(xiàn)場來說太小了?改成128試試

8

修改之后重新生成代碼、編譯、下載,果然跑起來了,看來默認(rèn)的64的idle任務(wù)堆棧確實設(shè)置小了

202043eai74l7fb8cyfzbj

用uCOS-III點燈完成,也算小試了一把牛刀,但是沒有大規(guī)模的改代碼,就這么簡單的改了改配置就把RTOS跑了起來,這讓我心里隱隱地覺得有些不安,有什么焦慮呢,。

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

    關(guān)注

    9

    文章

    215

    瀏覽量

    66748
收藏 人收藏

    評論

    相關(guān)推薦

    使用purepath wireless configurator能否對編碼器AIC3254內(nèi)置的miniDSP進行相應(yīng)的配置

    由于我們買了purepath無線開發(fā)套件來進行試驗,同時我們采用了編碼器AIC3254來替代原有的AIC3101. 使用軟件purepath wireless configurator 對整個
    發(fā)表于 11-05 06:10

    智能顯示控制儀XMT808配置編程說明

    電子發(fā)燒友網(wǎng)站提供《智能顯示控制儀XMT808配置編程說明.pptx》資料免費下載
    發(fā)表于 10-30 16:59 ?0次下載

    溫升試驗條件和試驗原理

    溫升試驗是一種用于評估設(shè)備在正常工作條件下由于熱效應(yīng)而產(chǎn)生的溫度變化的測試。這種測試對于確保設(shè)備在長時間運行時的可靠性和安全性至關(guān)重要。以下是溫升試驗的條件和原理的解釋: 一、溫升試驗條件 環(huán)境溫度
    的頭像 發(fā)表于 09-30 10:58 ?578次閱讀

    變頻串聯(lián)諧振交流耐壓試驗裝置的應(yīng)用是什么?

    試驗裝置具有以下幾個顯著的技術(shù)特點:體積小、重量輕:相比傳統(tǒng)的工頻耐壓裝置,變頻串聯(lián)諧振試驗裝置的體積與重量約為其1/10~1/30,更便于現(xiàn)場搬運和靈活配置。分件式設(shè)計:采用分件式設(shè)計,可根據(jù)現(xiàn)場
    發(fā)表于 08-01 11:02

    請問CY8C6137BZI-F54用device configurator設(shè)定P0.4, P7.6有什么需要特別留意的地方嗎?

    我用MTB device configurator 設(shè)定CY8C6137BZI-F54的P0.4, P5.3, P7.6, P12.0為GPIO output且初始狀態(tài)設(shè)定為high, 但最后只有
    發(fā)表于 07-24 07:07

    如何使用瑞薩RH850-F1KS4 Smart Configurator配置外設(shè)呢?

    本文將介紹如何使用瑞薩 RH850-F1KS4 Smart Configurator 配置外設(shè),如果需要使用 Y-ASK-RH850F1KM-S1-V3_Sample 工程包,可在瑞薩官方網(wǎng)站下載。
    的頭像 發(fā)表于 05-29 15:24 ?1570次閱讀
    如何使用瑞薩RH850-F1KS4 Smart <b class='flag-5'>Configurator</b><b class='flag-5'>配置</b>外設(shè)呢?

    充氣試驗變壓器的使用方法?

    氣體壓力是否正常(≥0.15MPA)  ?。?、交直流兩用試驗變壓器在做交流耐壓時,短路桿插入孔J中,做直流泄漏試驗,取出短路桿。  ?。?、限流電阻配置:工頻耐壓每伏0.1~1歐:直流每伏5~10歐,一般
    發(fā)表于 05-11 10:20

    瑞薩Smart Configurator支持SEGGER集成開發(fā)工具

    Configurator代碼生成器中。此次集成將為Renesas新推出的R9A02G021系列MCU提供端到端的開發(fā)工具支持,標(biāo)志著瑞薩電子在通用應(yīng)用領(lǐng)域首次推出32位RISC-V MCU的重大突破。
    的頭像 發(fā)表于 05-10 14:25 ?662次閱讀

    工業(yè)路由器配置教程

    工業(yè)路由器配置教程,包括硬件連接、軟件安裝、基本配置、安全設(shè)置、高級配置和測試驗證。確保穩(wěn)定運行和數(shù)據(jù)傳輸,強調(diào)安全設(shè)置和性能優(yōu)化。遵循步驟和注意事項,輕松完成設(shè)置。
    的頭像 發(fā)表于 04-23 15:20 ?1170次閱讀
    工業(yè)路由器<b class='flag-5'>配置</b>教程

    請問ModusToolbox下對CYBT-483056-02模塊編程,如何使能RFX2401C?

    請問ModusToolbox下對CYBT-483056-02模塊編程,如何使能RFX2401C? CYBT-483056-02模塊中,CYW20719B2通過P2, P16引腳控制RFX2401C芯片的收、發(fā)。但是Device configurator中沒有這兩個引腳的定
    發(fā)表于 03-01 13:13

    使用ml configurator進行tflite網(wǎng)絡(luò)模型的轉(zhuǎn)換不成功怎么解決?

    使用ml configurator進行tflite網(wǎng)絡(luò)模型的轉(zhuǎn)換不成功,提示錯誤,請幫忙協(xié)助謝謝 [ERROR] Failed to run QEMU
    發(fā)表于 01-31 06:56

    open harmony照明開關(guān)應(yīng)用介紹

    最近幾年,智能家居成為了人們?nèi)粘I钪械臒衢T話題。其中,智能照明系統(tǒng)作為智能家居的重要組成部分之一,正在迅速流行起來。而今天我將為大家詳細(xì)介紹一款智能照明系統(tǒng)中的開關(guān)——open harmony照明
    的頭像 發(fā)表于 01-05 17:00 ?1063次閱讀

    環(huán)境試驗與可靠性試驗的區(qū)別

    環(huán)境試驗與可靠性試驗的區(qū)別
    的頭像 發(fā)表于 12-08 09:31 ?883次閱讀
    環(huán)境<b class='flag-5'>試驗</b>與可靠性<b class='flag-5'>試驗</b>的區(qū)別

    基于RASC的keil電子時鐘制作(瑞薩RA)(2)----配置keil以及使用串口進行打印

    本篇文章主要介紹了一種基于瑞薩RA系列微控制器的電子時鐘制作方法,重點關(guān)注如何利用瑞薩RA Smart Configurator生成串口配置,以及在具體實踐中如何對瑞薩RA2E1開發(fā)板進行串口打印
    的頭像 發(fā)表于 12-01 14:47 ?641次閱讀
    基于RASC的keil電子時鐘制作(瑞薩RA)(2)----<b class='flag-5'>配置</b>keil以及使用串口進行打印

    如何在代碼中配置DDS編程示例

    DDS編程示例 我們嘗試在代碼中配置DDS,以之前Hello World話題通信為例。 運行效果 啟動兩個終端,分別運行發(fā)布者和訂閱者節(jié)點: $ ros2 run learning_qos
    的頭像 發(fā)表于 11-24 18:08 ?932次閱讀
    如何在代碼中<b class='flag-5'>配置</b>DDS<b class='flag-5'>編程</b>示例