欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

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

樹(shù)莓派PICO pio使用

冬至子 ? 來(lái)源:螺絲松掉的人 ? 作者:螺絲松掉的人 ? 2023-10-18 15:17 ? 次閱讀

樹(shù)莓派 Pico 小小的板子上總是能讓我們發(fā)現(xiàn)一些驚喜。其所使用的RP2040芯片還具備8個(gè)可編程I/O(PIO)狀態(tài)機(jī),用于自定義外圍設(shè)備,與 FPGA 類(lèi)似,開(kāi)發(fā)者可以靈活的使用 PIO 自定義功能。

可編程I/O(PIO)是為 RP2040 開(kāi)發(fā)的一種新型硬件,可以通過(guò) PIO 創(chuàng)建新類(lèi)型的(或附加)硬件接口。通過(guò)使用 PIO ,可以模擬更多,更豐富,更快的硬件接口,有助于提升性能和擴(kuò)展性。

與 PIO 相比,F(xiàn)PGA 往往更加昂貴,而且需要使用其他的編程模式編寫(xiě)程序。但 PIO 僅僅只需要通過(guò)匯編語(yǔ)言就可以實(shí)現(xiàn),開(kāi)發(fā)者不需要去適應(yīng) FPGA 那種編程模式即可很快的實(shí)現(xiàn)自定義硬件接口。

PIO 一個(gè)簡(jiǎn)單的 demo:

主要需要用到一個(gè)匯編實(shí)現(xiàn)的pio文件,一些C文件,和Cmake文件,實(shí)現(xiàn)串口打印 hello

pio文件:

.program hello
; Repeatedly get one word of data from the TX FIFO, stalling when the FIFO is
; empty. Write the least significant bit to the OUT pin group.
loop:
pull
out pins, 1
jmp loop
% c-sdk {
static inline void hello_program_init(PIO pio, uint sm, uint offset, uint pin) {
pio_sm_config c = hello_program_get_default_config(offset);
// Map the state machine's OUT pin group to one pin, namely the pin
// parameter to this function.
sm_config_set_out_pins(&c, pin, 1);
// Set this pin's GPIO function (connect PIO to the pad)
pio_gpio_init(pio, pin);
// Set the pin direction to output at the PIO
pio_sm_set_consecutive_pindirs(pio, sm, pin, 1, true);
// Load our configuration, and jump to the start of the program
pio_sm_init(pio, sm, offset, &c);
// Set the state machine running
pio_sm_set_enabled(pio, sm, true);
}
%}

其流程主要如下:

將程序加載到PIO的指令存儲(chǔ)器中;

設(shè)置PIO狀態(tài)機(jī)以運(yùn)行程序;

在狀態(tài)機(jī)運(yùn)行時(shí)與狀態(tài)機(jī)交互。

C文件:

#include "pico/stdlib.h"
#include "hardware/pio.h"
// Our assembled program:
#include "hello.pio.h"
int main() {
#ifndef PICO_DEFAULT_LED_PIN
#warning pio/hello_pio example requires a board with a regular LED
#else
// Choose which PIO instance to use (there are two instances)
PIO pio = pio0;
// Our assembled program needs to be loaded into this PIO's instruction
// memory. This SDK function will find a location (offset) in the
// instruction memory where there is enough space for our program. We need
// to remember this location!
uint offset = pio_add_program(pio, &hello_program);
// Find a free state machine on our chosen PIO (erroring if there are
// none). Configure it to run our program, and start it, using the
// helper function we included in our .pio file.
uint sm = pio_claim_unused_sm(pio, true);
hello_program_init(pio, sm, offset, PICO_DEFAULT_LED_PIN);
// The state machine is now running. Any value we push to its TX FIFO will
// appear on the LED pin.
while (true) {
// Blink
pio_sm_put_blocking(pio, sm, 1);
sleep_ms(500);
// Blonk
pio_sm_put_blocking(pio, sm, 0);
sleep_ms(500);
}
#endif
}

我們會(huì)發(fā)現(xiàn)其中調(diào)用了 “hello.pio.h” 頭文件,其與之前的 pio 文件相關(guān),但 pio 文件并不能在 c 文件中直接調(diào)用,于是就需要 Cmake 文件將 pio 文件和 c 文件聯(lián)系到一起,并構(gòu)建一個(gè)可執(zhí)行文件。

Cmake文件

add_executable(hello_pio)
pico_generate_pio_header(hello_pio ${CMAKE_CURRENT_LIST_DIR}/hello.pio)
target_sources(hello_pio PRIVATE hello.c)
target_link_libraries(hello_pio PRIVATE
pico_stdlib
hardware_pio
)
pico_add_extra_outputs(hello_pio)

add url via pico_set_program_url

example_auto_set_url(hello_pio)

其中的 pico_generate_pio_header 非常重要,其將之前用匯編語(yǔ)言寫(xiě)的 pio 文件生成為一個(gè) .h 頭文件,以供 c 文件調(diào)用。

通過(guò)這寫(xiě)文件和 pico 官方提供的 sdk 就可以構(gòu)建一個(gè)串口打印 hello 的程序了。

其他

我是在移植 pico-w 板載的 Wi-Fi 功能時(shí)注意到這一功能的,因?yàn)樾枰褂玫?cyw43_bus_pio_spi.pio 。但是由于 RT-Thread 這邊使用的是 Scons,于是我就先利用 pico-examples 的 cmake 生成該 pio文件對(duì)應(yīng)的 .h 文件 cyw43_bus_pio_spi.pio.h 然后復(fù)制過(guò)來(lái)是以供項(xiàng)目調(diào)用。

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

    關(guān)注

    1630

    文章

    21801

    瀏覽量

    606357
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    38

    文章

    7530

    瀏覽量

    164402
  • 狀態(tài)機(jī)
    +關(guān)注

    關(guān)注

    2

    文章

    492

    瀏覽量

    27674
  • RT-Thread
    +關(guān)注

    關(guān)注

    31

    文章

    1306

    瀏覽量

    40420
  • 樹(shù)莓派
    +關(guān)注

    關(guān)注

    117

    文章

    1710

    瀏覽量

    105896
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    樹(shù)莓Pico如何使用PIO程序呢?

    在這篇教程中,我們看到的代碼看起來(lái)與其他的部分的代碼非常不同。那是因?yàn)槲覀兇蠖鄶?shù)時(shí)候不得不在 MCU 的底層處理事情。
    的頭像 發(fā)表于 11-14 15:06 ?2128次閱讀
    <b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>如何使用<b class='flag-5'>PIO</b>程序呢?

    樹(shù)莓pico入門(mén)學(xué)習(xí)筆記(一)相關(guān)資料推薦

    樹(shù)莓pico入門(mén)學(xué)習(xí)筆記選擇自己熟悉的編程語(yǔ)言樹(shù)莓pico提供C/C++和micropyth
    發(fā)表于 07-01 09:28

    樹(shù)莓pico如何入門(mén)?

    樹(shù)莓pico如何入門(mén)?
    發(fā)表于 10-13 08:11

    樹(shù)莓Pico的相關(guān)資料分享

    關(guān)注、星標(biāo)公眾號(hào),直達(dá)精彩內(nèi)容1月22日,樹(shù)莓基金會(huì)最新發(fā)布一款低成本、高性能的微控制器開(kāi)發(fā)板Raspberry Pi Pico,新產(chǎn)品相比普通樹(shù)莓
    發(fā)表于 11-03 08:44

    樹(shù)莓Pico的相關(guān)資料推薦

    1月22日,樹(shù)莓基金會(huì)最新發(fā)布一款低成本、高性能的微控制器開(kāi)發(fā)板Raspberry Pi Pico,新產(chǎn)品相比普通樹(shù)莓體積更小,售價(jià)僅4
    發(fā)表于 02-07 07:37

    遠(yuǎn)程控制樹(shù)莓3b上的pi pico

    樹(shù)莓pi pico樹(shù)莓4相比差別很大,但是pi pico有一些特點(diǎn)是
    的頭像 發(fā)表于 03-05 17:23 ?4035次閱讀

    樹(shù)莓也出MCU了?樹(shù)莓Pico來(lái)了!

    關(guān)注、星標(biāo)公眾號(hào),直達(dá)精彩內(nèi)容1月22日,樹(shù)莓基金會(huì)最新發(fā)布一款低成本、高性能的微控制器開(kāi)發(fā)板Raspberry Pi Pico,新產(chǎn)品相比普通樹(shù)莓
    發(fā)表于 10-28 10:36 ?11次下載
    <b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>也出MCU了?<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>來(lái)了!

    樹(shù)莓不講武德,自研雙核MCU Pico,STM32哭暈在廁所!

    PIO架構(gòu),能否開(kāi)創(chuàng)MCU市場(chǎng)全新領(lǐng)域,STM,兆易創(chuàng)新,STC,全志,樂(lè)鑫等一票國(guó)產(chǎn)MCU能否跟上?樹(shù)莓派發(fā)布雙核基于M0的MCU近日,樹(shù)莓派發(fā)布了自研的40nm雙核MCU,嵌入式MCU市場(chǎng)又要迎來(lái)真正的新氣象.一如之前發(fā)布的
    發(fā)表于 10-28 20:20 ?14次下載
    <b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>不講武德,自研雙核MCU <b class='flag-5'>Pico</b>,STM32哭暈在廁所!

    樹(shù)莓Pico:僅4美元的MCU

    1月22日,樹(shù)莓基金會(huì)最新發(fā)布一款低成本、高性能的微控制器開(kāi)發(fā)板Raspberry Pi Pico,新產(chǎn)品相比普通樹(shù)莓體積更小,售價(jià)僅4
    發(fā)表于 12-04 13:06 ?13次下載
    <b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>:僅4美元的MCU

    樹(shù)莓pico入門(mén)學(xué)習(xí)筆記(一)

    樹(shù)莓pico入門(mén)學(xué)習(xí)筆記選擇自己熟悉的編程語(yǔ)言樹(shù)莓pico提供C/C++和micropyth
    發(fā)表于 12-17 18:42 ?21次下載
    <b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b><b class='flag-5'>pico</b>入門(mén)學(xué)習(xí)筆記(一)

    距離檢測(cè)報(bào)警使用樹(shù)莓Pico

    電子發(fā)燒友網(wǎng)站提供《距離檢測(cè)報(bào)警使用樹(shù)莓Pico.zip》資料免費(fèi)下載
    發(fā)表于 11-09 11:49 ?0次下載
    距離檢測(cè)報(bào)警使用<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>

    基于樹(shù)莓pico的可編程游戲手柄設(shè)計(jì)

    方案介紹組件12x12x7.3mm 瞬時(shí)觸覺(jué)按鈕按鈕樹(shù)莓Pico通用 D1286464 OLED 顯示屏操縱桿模塊 PS210 歐姆電阻?組裝將樹(shù)莓
    發(fā)表于 12-26 15:10 ?0次下載

    使用樹(shù)莓Pico制作USB麥克風(fēng)

    本指南將教你如何使用樹(shù)莓 Pico 和外部數(shù)字麥克風(fēng)制作屬于自己的 USB 麥克風(fēng)。本項(xiàng)目通過(guò) RP2040 微控制器(MCU)的編程 I/O(PIO)、直接存儲(chǔ)器訪(fǎng)問(wèn)(DMA)和通
    的頭像 發(fā)表于 08-17 10:12 ?3139次閱讀
    使用<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>制作USB麥克風(fēng)

    樹(shù)莓Pico Flash驅(qū)動(dòng)踩坑記錄

    樹(shù)莓 pico 帶有 2MB 的 Flash 資源,以下是我基于官方 Pico C/C++ SDK 對(duì)接 Flash 驅(qū)動(dòng)時(shí)踩到的一些坑和解決辦法。
    的頭像 發(fā)表于 10-20 11:44 ?1637次閱讀

    如何在樹(shù)莓Pico上使用紅外線(xiàn)接收模塊?

    樹(shù)莓 Pico 上使用紅外線(xiàn)接收模塊(HX1838 型),我們采用開(kāi)源的 pico_ir 庫(kù)。
    的頭像 發(fā)表于 11-30 09:08 ?2384次閱讀
    如何在<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>上使用紅外線(xiàn)接收模塊?