日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

如何用MDK來開發(fā)樹莓Pico

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來源:裸機思維 ? 作者: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是一個小巧、“迅速”且多功能的開發(fā)板,基于獨家定制的RP2040芯片打造,是在英國的樹莓派團隊設(shè)計的全新微控制器。

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

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

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

256K + 8K 的SRAM

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

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

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

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

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

Pico-SDK開發(fā)者談Pico開發(fā)環(huán)境的設(shè)計思路,總結(jié)如下:

不會玩cmake的請學(xué)習(xí)cmake,用不了你多少時間

Windows我們也支持啊,你裝個Linux模擬環(huán)境……

我們推薦所有用戶都應(yīng)該用樹莓派4的Linux環(huán)境來開發(fā)Pico這個MCU

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

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

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

……

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

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

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

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

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

實際上:

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

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

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

支持Arm Compiler 6

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

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

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

支持使用JLINK進行調(diào)試

默認搭載了perf_counter服務(wù)

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

在外部Flash里執(zhí)行代碼

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

在SRAM里調(diào)試

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

【Pico-Template的部署】

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

第一種方式:使用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

至此,我們已經(jīng)成功的將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

完成下載后,解壓縮到本地。打開解壓后的目錄,應(yīng)該看到類似下圖的內(nèi)容:

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

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

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

完成下載后,解壓縮到本地。打開解壓后的目錄,應(yīng)該看到類似下圖的內(nèi)容:

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

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

第三種方式:網(wǎng)盤見

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

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

【如何編譯和下載】

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

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

單擊編譯,應(yīng)該可以順利的看到類似如下的結(jié)果:

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

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

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

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

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

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

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

單擊圖中紅圈內(nèi)選中的“Edit”按鈕。

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

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

【如何在SRAM中執(zhí)行代碼】

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

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

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

【如何使用MDK進行調(diào)試】

在眾多的商業(yè)調(diào)試工具中,Segger 的J-Link很迅捷的就添加了對RP2040的調(diào)試支持,具體細節(jié)可以通過下面的網(wǎng)址來了解:

https://wiki.segger.com/Raspberry_Pi_Pico

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

【elf2uf2轉(zhuǎn)換工具】

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

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

【說在后面的話】

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

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

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

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

跟我這兒玩啥凡爾賽?

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

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

責(zé)任編輯:haq

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

    關(guān)注

    147

    文章

    19164

    瀏覽量

    404871
  • MPU
    MPU
    +關(guān)注

    關(guān)注

    0

    文章

    463

    瀏覽量

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

    關(guān)注

    26

    文章

    6435

    瀏覽量

    121233
  • 樹莓派
    +關(guān)注

    關(guān)注

    122

    文章

    2082

    瀏覽量

    110824

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

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    Pico示波器如何實現(xiàn)多通道同步采集

    一般情況下,同一臺示波器的多通道間可以通過軟件上的簡單控制實現(xiàn)“同步”采集,但多臺示波器多通道間的“同步”采集如何能實現(xiàn)呢?儀集科技給大家分享以下兩個方案,如何利用Pico示波器實現(xiàn)多通道同步采集
    發(fā)表于 03-17 11:28

    CW32單片機支持哪幾種開發(fā)環(huán)境,比較常用的MDK支持嗎?

    CW32單片機支持哪幾種開發(fā)環(huán)境,比較常用的MDK支持嗎。 若使用MDK開發(fā),是否也需要下載芯片包,導(dǎo)入到MDK中?xxx32的庫可以用嗎。
    發(fā)表于 01-26 06:14

    如何快速在MDK下添加CW32芯片進行開發(fā)

    如何快速在MDK下添加CW32芯片進行開發(fā)
    發(fā)表于 12-22 16:23

    【EK-RA6E2開發(fā)指南】開發(fā)環(huán)境搭建

    瑞薩電子的開發(fā)工具有很多,筆者習(xí)慣使用MDK開發(fā),因此本文將基于MDK+RA Smart Configurator搭建開發(fā)環(huán)境。
    的頭像 發(fā)表于 09-23 18:12 ?3222次閱讀
    【EK-RA6E2<b class='flag-5'>開發(fā)</b>指南】<b class='flag-5'>開發(fā)</b>環(huán)境搭建

    Pico2-ICE FPGA開發(fā)板的應(yīng)用示例

    FPGA 和 MCU 結(jié)合的開發(fā)板不多,而 Pico2?ICE 則把小巧、靈活和易上手完美結(jié)合。搭載 RP2350 雙核 RISC-V MCU + Lattice iCE40UP5K FPGA,配合官方 SDK,你可以一步步跑通各種示例,從 LED 到 VGA,再到 MC
    的頭像 發(fā)表于 09-06 10:02 ?1345次閱讀
    <b class='flag-5'>Pico</b>2-ICE FPGA<b class='flag-5'>開發(fā)</b>板的應(yīng)用示例

    樹莓Pico上運用不同的并行化手段

    樹莓Pico由RP2040微控制器驅(qū)動,其上搭載兩個CPU核,這讓它非常適合探索并行計算。本文通過真實的數(shù)字信號處理樣例來說明從雙核架構(gòu)中提取最大價值的方法和考量。
    的頭像 發(fā)表于 08-29 09:51 ?4180次閱讀
    在<b class='flag-5'>樹莓</b>派<b class='flag-5'>Pico</b>上運用不同的并行化手段

    樹莓派屏幕怎么選?

    樹莓派很多人都用過,但用屏幕的倒不是很多。不少都是直接遠程操作,或者直接接身邊的顯示設(shè)備了。但我覺得給開發(fā)板配一個屏幕還是很能提升使用體驗的。這次我就介紹一下樹莓派的屏幕怎么選擇。樹莓
    的頭像 發(fā)表于 08-08 14:59 ?1771次閱讀
    <b class='flag-5'>樹莓</b>派屏幕怎么選?

    樹莓派操作系統(tǒng):版本、特性及設(shè)置完整指南!

    樹莓派操作系統(tǒng)是什么?樹莓派操作系統(tǒng)是由樹莓派基金會專為樹莓開發(fā)的官方操作系統(tǒng)。它基于DebianLinux發(fā)行版,并針對
    的頭像 發(fā)表于 07-28 18:26 ?1920次閱讀
    <b class='flag-5'>樹莓</b>派操作系統(tǒng):版本、特性及設(shè)置完整指南!

    如何在樹莓派上設(shè)置并使用VNC?遠程訪問完整指南!

    ,使設(shè)置更加經(jīng)濟高效。無論我們是開發(fā)項目的愛好者、管理滿屋子樹莓派的教育工作者,還是試驗物聯(lián)網(wǎng)設(shè)備的人,VNC都提供了一種用戶友好、可定制的方式遠程控制和管理樹莓
    的頭像 發(fā)表于 07-26 20:42 ?6212次閱讀
    如何在<b class='flag-5'>樹莓</b>派上設(shè)置并使用VNC?遠程訪問完整指南!

    如何在樹莓派上安裝并運行 Arduino 集成開發(fā)環(huán)境!

    使用樹莓派單板計算機,你可以運行各種應(yīng)用程序,包括廣受歡迎的Arduino集成開發(fā)環(huán)境(IDE)。這意味著你可以用它輕松地為通過USB連接到樹莓派計算機的微控制器編程,以創(chuàng)建交互式電子項目。下面
    的頭像 發(fā)表于 07-01 17:41 ?4610次閱讀
    如何在<b class='flag-5'>樹莓</b>派上安裝并運行 Arduino 集成<b class='flag-5'>開發(fā)</b>環(huán)境!

    樹莓派小技巧:無需鍵盤或顯示器,如何通過WiFi設(shè)置樹莓派?

    樹莓派是一款小巧便攜的USB供電計算機,可以隱藏起來用于小型項目,如網(wǎng)絡(luò)服務(wù)器或家庭自動化。通常,設(shè)置樹莓派需要鍵盤和顯示器編輯和查看樹莓派的設(shè)置,例如WiFi連接設(shè)置。然而,許多項
    的頭像 發(fā)表于 06-26 15:41 ?1888次閱讀
    <b class='flag-5'>樹莓</b>派小技巧:無需鍵盤或顯示器,如何通過WiFi設(shè)置<b class='flag-5'>樹莓</b>派?

    樹莓派分類器:用樹莓派識別不同型號的樹莓派!

    在本教程系列的第一部分中,您將學(xué)習(xí)如何使用樹莓派AI攝像頭檢測不同的樹莓派型號。本系列由DavidPlowman創(chuàng)建,他是樹莓派工程師,專注于圖像處理硬件、攝像頭軟件和算法研究。您可
    的頭像 發(fā)表于 06-13 16:39 ?1584次閱讀
    <b class='flag-5'>樹莓</b>派分類器:用<b class='flag-5'>樹莓</b>派識別不同型號的<b class='flag-5'>樹莓</b>派!

    樹莓派與EthernetHat:用ChatGPT實現(xiàn)的MQTT智能家居項目!

    我們使用Pico、WIZnetW5100S和PicoBricks開發(fā)開發(fā)了MQTTRGB燈,通過ChatGPT4.0生成和優(yōu)化代碼。項目所需組件硬件組件PicoBricks擴展板x1WIZnetW5100S-EVB-Picox
    的頭像 發(fā)表于 06-03 15:29 ?1.9w次閱讀
    <b class='flag-5'>樹莓</b>派與EthernetHat:用ChatGPT實現(xiàn)的MQTT智能家居項目!

    何用QT開發(fā)一個USB3.0上位機?

    何用QT開發(fā)一個USB3.0上位機
    發(fā)表于 05-21 06:54

    從Keil MDK到IAR EWARM:通過工程遷移實現(xiàn)項目資產(chǎn)的更好管理

    對于需要統(tǒng)一開發(fā)環(huán)境或涉及多核架構(gòu)(如Cortex-A/R)的項目,越來越多的用戶選擇從Keil MDK遷移到IAR EWARM。這就會面臨著需要將之前的Keil MDK工程遷移到IAR EWARM的問題。本文將介紹如何高效完成
    的頭像 發(fā)表于 05-08 09:03 ?1512次閱讀
    從Keil <b class='flag-5'>MDK</b>到IAR EWARM:通過工程遷移實現(xiàn)項目資產(chǎn)的更好管理
    秦皇岛市| 盐边县| 澜沧| 含山县| 榆树市| 五指山市| 繁昌县| 穆棱市| 竹山县| 廉江市| 浪卡子县| 汉源县| 东明县| 逊克县| 晋州市| 临清市| 乌鲁木齐县| 邢台县| 达拉特旗| 南丹县| 吴忠市| 铜山县| 原阳县| 江川县| 宜兰县| 石家庄市| 无极县| 东至县| 金溪县| 弥勒县| 弥渡县| 太白县| 姚安县| 康定县| 廉江市| 厦门市| 合作市| 金寨县| 岳池县| 新绛县| 莱芜市|