在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

如何用MDK來開發樹莓Pico

RTThread物聯網操作系統 ? 來源:裸機思維 ? 作者:GorgonMeducer 傻孩子 ? 2021-09-22 15:28 ? 次閱讀

【說在前面的話】

按照樹莓派基金會的說法:

Raspberry Pi Pico is a tiny, fast, and versatile board built using RP2040, a brand new microcontroller chip designed by Raspberry Pi in the UK.

https://www.raspberrypi.org/products/raspberry-pi-pico/

樹莓派 Pico是一個小巧、“迅速”且多功能的開發板,基于獨家定制的RP2040芯片打造,是在英國的樹莓派團隊設計的全新微控制器

以30RMB左右的價格來看,Pico作為一個開發板具有非常吸引人的特性:

搭載了設計最大頻率為133MHz的雙核Cortex-M0+

實際可以輕松超頻到250MHz,甚至是400MHz

256K + 8K 的SRAM

由多個SRAM總線從機接口構成,從而保證了多總線主機訪問時不易出現沖突的問題——雙向八車道的高速,幾乎不會堵車——吞吐量杠杠的

大量充滿奇思妙想的外設(這里就不做贅述)

在開發環境上,Pico身為單片機,卻有著Linux般豪華的富貴病——這么說吧,你要是沒玩過cmake、gcc、沒用過命令行、沒搞過OpenOCD,你都不好意思說你是Pico的C玩家。

在Pico官方論壇上,曾經有一個帶節奏的帖子叫做《Pi Pico - the most user un-friendly MCU?》(中文:樹莓派Pico——對用戶最不友好的MCU)?如果你可以看懂英文,建議去觀摩下這個13頁的熱帖。其中你可以看到:

Pico-SDK團隊開發者下場撕逼親切的與各種暴躁老哥用戶交流使用經驗

Pico-SDK開發者談Pico開發環境的設計思路,總結如下:

不會玩cmake的請學習cmake,用不了你多少時間

Windows我們也支持啊,你裝個Linux模擬環境……

我們推薦所有用戶都應該用樹莓派4的Linux環境來開發Pico這個MCU

別人都玩得好好的,你玩不好一定是你不熟悉cmake

makefile玩家、IAR玩家、MDK玩家請自尋出路(“on your own”)

我們團隊廟小,4美元的開發板你還要啥自行車?

……

然而,MCU的開發并不同于MPU的開發。我的觀察中,樹莓派這類能跑Linux的系統,基本上使用的是Linux生態,在這一生態下,很多工具比如cmake、命令行、GDB或者OpenOCD之類都是如空氣和水一樣自然的東西。然而,樹莓派團隊在處理Pico這類MCU時可能多少有點“屁股決定腦袋”了,仍然按照自己的習慣照搬了Linux的那套開發習慣到MCU環境中。

我經常說,拋開正態分布的中央主極大、用兩端的個案來舉反例,就是耍流氓。

對MCU開發環境來說,雖然也有不少人使用gcc、cmake之類的工具,但主體的大多數人還是以IDE等“一站式”開發工具為主體的。RP2040無論多么優秀,它本質上就是個裝了兩個Cortex-M0+的大號MCU,憑什么非要上Linux環境才能開發?

MDK雖然老舊、不支持多級工程管理、偶爾閃退、語法提示經常出錯、被破解的爹媽都不認識……被人罵了那么多,但Cortex-M用MDK開發仍然是主流。但無奈,人家的孩子人家說了算,官方明確態度說暫時不支持Arm Compiler 6,也不支持用MDK這樣的不帶cmake支持的IDE,你也沒辦法啊。

好在Pico-SDK是一個基于BSD 3-Clause協議的開源項目;RP2040的數據手冊寫的也很清晰。官方說不支持,我們就自己來唄?于是就有了這個MDK專屬的Pico-Template開源項目。

實際上:

Pico-Template 是目前世界上第一個用MDK配合Arm Compiler 6開發Pico的模板;

使用該模板你可以使用Pico-SDK來訪問全部的外設

實際使用中 Pico-Template 具有以下特點:

支持Arm Compiler 6

可以使用RTE和Pack-Installer獲得各類中間件軟件包

告別純匯編編寫的startup文件,使用純C語言進行開發

配置棧和堆的大小更為簡單

支持使用JLINK進行調試

默認搭載了perf_counter服務

一鍵切換不同的地址空間布局

在外部Flash里執行代碼

在SRAM里執行代碼(代碼仍保存在外部Flash里)

在SRAM里調試

【裸機思維】對該開源項目提供持續的維護和更新

【Pico-Template的部署】

一個合格的工程模板,應該做到只要成功的下載到了本地,就能夠立即使用——Pico-Template也是這樣。因此,所謂的Pico-Template的部署,實際上有三種方式:它們主要圍繞著如何處理Pico-Template所依賴的第三方倉庫而有所區別。

第一種方式:使用git工具進行下載

1、新建一個目錄,比如叫做 pico-mdk來保存模板,并進入該目錄

mkdir pico-mdkcd pico-mdk

2、使用git工具clone模板到本地:

git clone https://github.com/GorgonMeducer/Pico_Template 。

3、將Pico-Template所依賴的其它倉庫以submodule的形式更新到本地:

git submodule update --remote --init

至此,我們已經成功的將Pico-Template同步到了本地一個叫做pico-mdk的目錄下。

第二種方式:手工下載壓縮包

1、打開Pico-Template在Github上的Release頁面,下載最新版本的壓縮包。

https://github.com/GorgonMeducer/Pico_Template/releases

完成下載后,解壓縮到本地。

2、打開Pico-SDK在Github上的Release頁面,下載最新的壓縮包:

https://github.com/raspberrypi/pico-sdk/releases

完成下載后,解壓縮到本地。打開解壓后的目錄,應該看到類似下圖的內容:

全選上述目錄列表中的內容后,將它們拷貝到Pico-Template的pico-sdk目錄內

3、打開perf_counter在github上的Release頁面,下載最新的壓縮包:

https://github.com/GorgonMeducer/perf_counter/releases

完成下載后,解壓縮到本地。打開解壓后的目錄,應該看到類似下圖的內容:

全選上述目錄列表中的內容后,將它們拷貝到Pico-Template/project/mdk/perf_counter目錄內:

至此,我們成功的完成了Pico-Template的合體工作。恭喜恭喜!

第三種方式:網盤見

如果你覺得上述方法都挺麻煩的,尤其是你無法穩定的訪問Github,那么可以在訂閱【裸機思維】公眾號后發送關鍵字 “Pico”來獲取網盤鏈接。下載成功后立即可以使用。

這一方法唯一的缺點是:我可能會忘記更新網盤上的壓縮包。

【如何編譯和下載】

當你獲得了Pico-Template后,可以通過路徑project/mdk找到工程文件:

雙擊后,就可以見到我們熟悉的界面:

單擊編譯,應該可以順利的看到類似如下的結果:

可以看到,在工程目錄下(project/mdk/) 生成了一個名為 template.uf2 的文件——這就是Pico專用的鏡像文件:

此時,我們可以按住Pico上的白色按鈕不放、將Pico的USB接口連接PC。當我們在文件管理器中發現一個新的叫做 PRI-RP2 的U盤時,說明Pico已經成功進入燒錄準備狀態。

將template.uf2拖放到U盤中即可。

如果一切順利,可以看到Pico上的LED以大約0.5Hz的頻率進行呼吸。

【如何配置棧和堆的大小】

一個實用的工程模板,最繞不開的問題之一就是:如何設置棧和堆的大小。Pico-Template提供了極其簡單的方法。步驟如下:

1、打開Options for Target窗口,進入Linker選項卡:

單擊圖中紅圈內選中的“Edit”按鈕。

這里宏STACK_0_SIZE和HEAP_0_SIZE就是我們要配置的棧與堆的尺寸。請暫時無視其它宏的內容,也不要修改它們。

完成修改后,保存、重新編譯即可。

【如何在SRAM中執行代碼】

由于RP2040芯片并沒有片內Flash,因此通常會像Pico那樣使用外部Flash來保存程序。由于RP2040的XIP已經將外部Flash的內容映射到了Cortex-M0+的地址空間中(從0x10000000開始),因此可以直接在外部Flash上執行代碼。眾所周知,外部Flash是通過SPI或者QSPI來連接的,其速度肯定無法媲美芯片內部的Flash,因此即便 XIP有cache來提高速度,直接從0x1000-0000的地址上運行程序(或者是讀取數據)顯然存在性能上的瓶頸。為了解決這一問題,在SRAM富余的情況下(RP2040帶了264KB的SRAM)對一些小的應用來說,完全允許用戶直接在SRAM中執行代碼。為了提供這一功能,Pico-Template貼心的提供了對應的工程配置:我們可以在下拉列表中直接一鍵切換:

這一操作的本質實際上是更換了對應的scatter-script腳本。所有用到的鏈接腳本都保存在工程目錄下:

有興趣的小伙伴可以自行把玩。

【如何使用MDK進行調試】

在眾多的商業調試工具中,Segger 的J-Link很迅捷的就添加了對RP2040的調試支持,具體細節可以通過下面的網址來了解:

https://wiki.segger.com/Raspberry_Pi_Pico

Pico-Template默認已經選擇J-Link作為調試工具。需要注意的是,并非所有的J-Link都能支持RP2040的調試,按照官方的說法,只有v9版本的J-Link硬件才有對應的功能。如果你手頭正好有符合要求的J-Link,恭喜你,獲得了完整的MDK體驗——基本告別了手動拖放uf2文件,調試全靠LED的生活。

【elf2uf2轉換工具】

最后,值得特別說明的是,在Pico_Template的tool目錄下有一個我親手定制過的elf2uf2.exe——增加了自動計算0x1000-0000地址開始的252個字節的CRC32校驗碼,并將校驗結果追加其后的功能——如果不這么做,生成的uf2將無法通過stage2-boot的校驗。

工程模板會在每次編譯完成后執行 axf2uf2.bat,將生成的elf/axf文件轉換成Pico可以直接使用的uf2文件,方便用戶進行U盤拖放操作。

【說在后面的話】

說句實話,我挺喜歡樹莓派Pico的——即便我對官方的“Pico官方只支持用cmake開發不然自己想辦法”的態度有些許不滿,但仍然架不住它的小巧和魅力。這個模板已經涵蓋了除tinyUSB支持以外的幾乎大部分功能,成功的將Pico以普通Cortex-M0+的身份拉回了國內大部分嵌入式工程師所熟悉的開發環境中。

最后的最后,我一定要把心里憋了很久的那句話吐出來:

就一個M0+而已,干嘛開發它我還要去用命令行、用Linux、學cmake?憑什么?

你們Linux玩家人均cmake、命令行、OpenOCD、GDB、gcc,所以就不管單片機玩家的死活了么?

跟我這兒玩啥凡爾賽?

老子就不想用cmake……你還不讓我玩了?

就一個M0+而已,我就要用MDK來開發!怎么地吧!

責任編輯:haq

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

    關注

    146

    文章

    17686

    瀏覽量

    357677
  • MPU
    MPU
    +關注

    關注

    0

    文章

    398

    瀏覽量

    49493
  • 開發板
    +關注

    關注

    25

    文章

    5377

    瀏覽量

    100624
  • 樹莓派
    +關注

    關注

    118

    文章

    1903

    瀏覽量

    106544

原文標題:【獨家】我就要用MDK來開發樹莓Pico,怎么地吧!

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    別再用鑰匙啦!樹莓Pico教你用RFID“刷”門禁~

    獲得讀卡器,再搭配4美元的樹莓Pico,即可讀取卡片/標簽的ID信息。在本教程中,我們將學習如何使用MFRC522讀卡器和樹莓Pico讀取RFID標簽和卡片。
    的頭像 發表于 04-23 16:03 ?73次閱讀
    別再用鑰匙啦!<b class='flag-5'>樹莓</b>派<b class='flag-5'>Pico</b>教你用RFID“刷”門禁~

    Pico 2 RP2350 獨立開發:跳過 Pico SDK ,直接上手!

    Hazard3RISC-V。但本文將忽略RISC-V功能。Pico2并非唯一一款搭載Cortex-M33微控制器的開發板,但我相信它是全球范圍內最便宜且最容易購買
    的頭像 發表于 03-25 09:39 ?259次閱讀
    <b class='flag-5'>Pico</b> 2 RP2350 獨立<b class='flag-5'>開發</b>:跳過 <b class='flag-5'>Pico</b> SDK ,直接上手!

    樹莓Pico 2040 的“速度狂飆”:時鐘速度幾乎翻倍!

    樹莓Pico2040的“超能力”升級如果你手頭有一個樹莓Pico2040,但總覺得它的性能還沒完全發揮出來,那么恭喜你,現在機會來了!樹莓
    的頭像 發表于 03-25 09:25 ?160次閱讀
    <b class='flag-5'>樹莓</b>派 <b class='flag-5'>Pico</b> 2040 的“速度狂飆”:時鐘速度幾乎翻倍!

    樹莓Pico SDK 2.1.1 版本發布!

    RaspberryPiPicoSDK2.1.1最新版本現已發布,更新了多個內容。RaspberryPiRP2040獲官方200MHz時鐘支持自2021年RaspberryPiRP2040與Pico
    的頭像 發表于 03-25 09:20 ?414次閱讀
    <b class='flag-5'>樹莓</b>派 <b class='flag-5'>Pico</b> SDK 2.1.1 版本發布!

    STM32、Arduino、樹莓開發方式差異大嗎

    最近看到有網友問:STM32、Arduino、樹莓開發方式差異大嗎? ? 要說相同點,它們之間也有很多相同點。但你要說他們之間開發的差異,其實也蠻大的。 ? STM32、Arduino、樹莓
    的頭像 發表于 01-02 11:33 ?967次閱讀

    Raspberry Pi Pico 2 W 發布

    Pico 2 W 微控制器板發布:支持無線連接,7 美元 該開發板基于樹莓派 RP2350 處理器,沿用了初代 Pico W 上的英飛凌 CYW43439 無線芯片,因此仍然僅 支持
    的頭像 發表于 11-25 18:25 ?854次閱讀
    Raspberry Pi <b class='flag-5'>Pico</b> 2 W 發布

    樹莓開發的最佳編程語言選擇

    樹莓派(Raspberry Pi)是一款由英國樹莓派基金會開發的信用卡大小的單板計算機,它以其低成本、易于編程和靈活性而受到廣泛歡迎。樹莓派可以用于各種項目,從簡單的家庭自動化到復雜的
    的頭像 發表于 11-11 11:34 ?1533次閱讀

    ARM開發板與樹莓派的比較

    ARM開發板和樹莓派都是基于ARM架構的單板計算機,它們在教育、工業控制、物聯網等領域有著廣泛的應用。 硬件配置 ARM開發板和樹莓派的硬件配置各有特點,具體取決于不同的型號和制造商。
    的頭像 發表于 11-05 11:11 ?1086次閱讀

    【BearPi-Pico H3863星閃開發板體驗連載】BearPi-Pico H3863星閃開發板初體驗

    ,電源轉換模塊,PCB天線及天線轉接接口。 二、使用 1.產品介紹 BearPi-Pico H3863產品介紹鏈接:產品介紹 BearPi-Pico H3863開發板主控使用海思SOC WS63(又稱
    發表于 10-01 22:47

    我用了3分鐘,從零實現了單片機的點燈開發

    。 BearPi-Pico RP2040功能 BearPi-Pico RP2040開發板引腳定義與樹莓派官方的Raspberry Pi Pico
    發表于 09-27 15:51

    樹莓派gui開發用什么ide

    樹莓派(Raspberry Pi)是一款功能強大的微型計算機,可以運行多種操作系統,如Raspbian、Ubuntu等。在樹莓派上進行GUI(圖形用戶界面)開發,可以使用多種集成開發
    的頭像 發表于 08-30 16:49 ?1441次閱讀

    樹莓派和arm開發板的區別

    樹莓派(Raspberry Pi)和ARM開發板都是基于ARM架構的微型計算機,但它們之間存在一些關鍵區別。 一、歷史背景 樹莓派(Raspberry Pi) 樹莓派是由英國
    的頭像 發表于 08-30 15:36 ?1638次閱讀

    linux開發板與樹莓派的區別

    定義和用途 Linux開發板:Linux開發板是一種基于Linux操作系統的嵌入式開發板,通常用于工業自動化、物聯網、智能家居等領域。 樹莓派:樹莓
    的頭像 發表于 08-30 15:34 ?1548次閱讀

    樹莓Pico 2發布,搭載RP2350雙核RISC-V和Arm Cortex-M33微控制器!

    QFN80 封裝 (RP2350B);以及每個型號都具有 2MB 的堆疊封裝 QSPI 閃存(RP2354A 和 RP2354B)。 樹莓Pico 2 開發Pico 2 R
    發表于 08-13 10:07

    如何恢復ESP32-PICO-DevKitM-2開發板的出廠固件?

    官網買了一個ESP32-PICO-DevKitM-2開發板,之前做測試代碼有問題,一直不斷重啟。 通過手動下載模式更新一個簡單的基于Arduino架構代碼下載到開發板上。 #include
    發表于 07-01 07:29
    主站蜘蛛池模板: 狠狠狠狼鲁欧美综合网免费 | 国产成人三级 | 国内一国产农村妇女一级毛片 | 无人码一区二区三区视频 | 午夜国产精品理论片久久影院 | 国产农村三片免费网站 | 五月国产综合视频在线观看 | 狠狠草视频 | www.色妞| 一女被两男吃奶玩乳尖口述 | 亚洲伦理一区二区 | 四虎永久免费网站入口2020 | 丁香六月婷婷七月激情 | 视频在线免费观看网址 | 四虎影院在线看 | 国产精品黄页网站在线播放免费 | 狠狠成人| 免费黄色福利 | 高清国产亚洲va精品 | 欧美成人看片一区二区三区 | 亚洲一区二区三区首页 | 国产亚洲综合一区 柠檬导航 | 激情五月深爱五月 | 五月婷婷爱 | 在线免费观看色视频 | 亚洲天堂视频一区 | 成人啪啪免费视频 | 美女黄色在线 | 日本特黄特色aaa大片免费欧 | 色噜噜狠狠狠综合曰曰曰 | 天天色天天| 日本毛片大全 | 视频精品一区二区三区 | 成人黄网大全在线观看 | 久久人人视频 | 久久久久国产一级毛片高清板 | 日本综合视频 | 女人双腿搬开让男人桶 | 六月丁香啪啪六月激情 | 四虎新地址 | 色多多黄色 |