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

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)不再提示

RT-Thread平臺(tái) zephyr_polling軟件包 Bluenrg2 藍(lán)牙芯片啟動(dòng)流程

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來(lái)源:未知 ? 2023-09-27 18:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

RTT zephyr_polling軟件包 Bluenrg2 藍(lán)牙芯片啟動(dòng)流程


“開(kāi)源之夏”“藍(lán)牙HOST協(xié)議棧zephyr_polling完善” 項(xiàng)目個(gè)人記錄

菜雞參與項(xiàng)目的個(gè)人記錄

項(xiàng)目軟件包地址:RTT_PACKAGE_zephyr_polling

前面已經(jīng)完成了 SPI 接口的實(shí)現(xiàn),要讓 zephyr_polling 在 Bluenrg2 上運(yùn)行起來(lái),下一步是實(shí)現(xiàn)其特殊的芯片啟動(dòng)流程。

藍(lán)牙芯片啟動(dòng)流程


在用標(biāo)準(zhǔn)的 HCI 指令控制設(shè)備進(jìn)行藍(lán)牙操作之前,需要提前通過(guò) VS Command 對(duì)設(shè)備進(jìn)行配置,只有正確配置好的設(shè)備才能正常使用。

芯片產(chǎn)商只出售芯片,并不關(guān)注外圍電路和具體的產(chǎn)品形態(tài),這些是具體的ODM廠(chǎng)商來(lái)實(shí)現(xiàn)的。也就是芯片產(chǎn)商提供帶HCI藍(lán)牙功能的芯片,ODM設(shè)計(jì)電路并設(shè)計(jì)產(chǎn)品,之后通過(guò)HCI和芯片進(jìn)行交互。實(shí)際各家ODM產(chǎn)商的需求各不相同,芯片產(chǎn)商為了滿(mǎn)足不同客戶(hù)的需要,并且為了減少和客戶(hù)的對(duì)接,就必然在同一套代碼的基礎(chǔ)上,需要提供一系列的配置參數(shù)來(lái)滿(mǎn)足不同 ODM 廠(chǎng)商的需要。

配置可以包括:固件燒錄(部分沒(méi)有帶 FLASH 的藍(lán)牙芯片每次上電都需要重新燒錄最新的固件)、藍(lán)牙地址配置、硬件接口配置(如RF接口,晶振類(lèi)型等,部分藍(lán)牙芯片需要)、波特率配置(HCI 一般是UART接口,默認(rèn)是115200)以及芯片需要的由廠(chǎng)商要求的其他參數(shù)配置。

此外,對(duì)于一些有Flash的芯片,完全可以將配置參數(shù)等預(yù)燒錄到了 Flash 中,使用時(shí)完全不需要配置任何參數(shù),直接通過(guò)HCI接口操作使用即可。

zephyr_polling 協(xié)議棧提供了 Boot 流程接口和 Prepare 流程接口,可以根據(jù)實(shí)際芯片的需求實(shí)現(xiàn)啟動(dòng)配置。

wKgZomUs71-AO8kfAACeCOW2wd0839.png

Boot流程:

完成廠(chǎng)商的初始化流程,如固件下載,藍(lán)牙地址配置等。在 chipset 注冊(cè)好接口后,協(xié)議棧啟動(dòng)時(shí)會(huì)通過(guò)boot_start()回調(diào)啟動(dòng) chipset(指協(xié)議棧 chipset 目錄下的啟動(dòng)流程代碼,下同) 的 Boot 流程,由于操作接口是 HCI,所以一般都是下發(fā)一個(gè)VS Command,然后根據(jù) VS Event 來(lái)進(jìn)行后續(xù)動(dòng)作,協(xié)議棧會(huì)通過(guò)event_process()回調(diào)接口將收到的 event 上報(bào)給 chipset,當(dāng) chipset 認(rèn)為操作結(jié)束時(shí),通過(guò)調(diào)用bt_hci_set_boot_ready()接口通知協(xié)議棧boot流程結(jié)束。

Prepare流程:

部分廠(chǎng)商的參數(shù)要求在 HCI_Reset Command 之后進(jìn)行(意思是它們的 HCI_Reset Command 會(huì)清空配置的參數(shù))。為了兼容這類(lèi)參數(shù)形態(tài),HCI_Reset Command 之后還加入了 Prepare 流程。協(xié)議棧收到 HCI_Reset 的 Command Complete Event 后會(huì)通過(guò)prepare_start()回調(diào)啟動(dòng) chipset 的 Prepare 流程,和 Boot 流程一樣,協(xié)議棧會(huì)通過(guò)event_process()回調(diào)接口將收到的 event 上報(bào)給 chipset ,當(dāng)chipset 認(rèn)為操作結(jié)束時(shí),通過(guò)調(diào)用bt_hci_set_prepare_ready()接口通知協(xié)議棧prepare流程結(jié)束。

BlueNRG-2 啟動(dòng)流程


查閱 ST 官方提供的手冊(cè)和例程資料,可以了解到 BlueNRG-2 的啟動(dòng)配置需求。

對(duì)于 BlueNRG-2:

Boot 流程:無(wú)事務(wù)。

Prepare 流程:關(guān)閉Host功能;藍(lán)牙地址配置;設(shè)置 TX power;GATT配置;GAP配置。

BlueNRG-2 啟動(dòng)流程實(shí)現(xiàn)


Boot 流程

BlueNRG-2 的 HCI_Reset Command 會(huì)清空配置的參數(shù),所以實(shí)際的配置放在協(xié)議棧的 Prepare 流程中。Boot 流程的回調(diào)函數(shù)直接調(diào)用bt_hci_set_boot_ready()結(jié)束流程。


		

1voidboot_start(void){ 2state=STATE_POLLING_BOOTING; 3//nothingtodo 4bt_hci_set_boot_ready();//finishboot 5}

Prepare 流程 - 關(guān)閉 Host 功能

開(kāi)發(fā)使用的藍(lán)牙模塊 X-NUCLEO-BNRG2A1 中的 BLE 本身是一個(gè) SOC,里面集成了 host 的協(xié)議棧。廠(chǎng)商 ST 提供了一套 ACI 指令來(lái)控制芯片行為,包括 host 的接口。也就是說(shuō)默認(rèn)的情況下,這個(gè)芯片的 ACL 交互都被接管了,所以需要通過(guò) ACI 命令,關(guān)閉 host 行為。需要通過(guò)aci_hal_write_config_data里的CONFIG_DATA_LL_WITHOUT_HOST關(guān)閉 host。

Prepare 流程第一步,關(guān)閉 host:


		

1voidprepare_start(void){ 2state=STATE_POLLING_PREPARING; 3step=1; 4//step1closehost 5bluenrg2_config_without_host();//Itcanbewrittenonlyifaci_hal_write_config_data()isthefirstcommandafterreset. 6}

關(guān)閉 host 的指令的 ogf 為0x3f,ocf 為0x00c,參數(shù)為2c11。其中,0x2C是關(guān)閉 Host 在 CONFIG_DATA 中的 offset。


		

1#defineCONFIG_DATA_LL_WITHOUT_HOST(0x2C)/** 2#defineCONFIG_DATA_LL_WITHOUT_HOST_LEN(1) 3staticintbluenrg2_config_without_host() 4{ 5uint8_tcmd_buffer[CONFIG_DATA_LL_WITHOUT_HOST_LEN+2]; 6structnet_buf*buf; 7cmd_buffer[0]=CONFIG_DATA_LL_WITHOUT_HOST;//offset 8cmd_buffer[1]=CONFIG_DATA_LL_WITHOUT_HOST_LEN;//configlen 9cmd_buffer[2]=1;//Setto1todisableHost 10uint16_togf=0x3f,ocf=0x00c; 11uint16_topcode=(uint16_t)((ocf&0x03ff)|(ogf<10)); 12buf=bt_hci_cmd_create(opcode,sizeof(cmd_buffer)); 13if(!buf) 14{ 15return-ENOBUFS; 16} 17net_buf_add_mem(buf,cmd_buffer,sizeof(cmd_buffer)); 18returnbt_hci_cmd_send(opcode,buf); 19}

Prepare 流程 - 藍(lán)牙地址設(shè)置

需要通過(guò)aci_hal_write_config_data里的CONFIG_DATA_PUBADDR_OFFSET配置藍(lán)牙地址。

配置藍(lán)牙地址的指令的 ogf0x3f,ocf 為0x00c。配置藍(lán)牙地址指令在 CONFIG_DATA 中的 offset 為 0x00,后面跟上地址長(zhǎng)度和設(shè)置的藍(lán)牙地址。


		

1#defineBLE_MAC_ADDR 2{ 3{ 40xf5,0x00,0x00,0xE1,0x80,0x02 5} 6} 7#defineCONFIG_DATA_PUBADDR_OFFSET(0x00)/** 8#defineCONFIG_DATA_PUBADDR_LEN(6) 9staticintbluenrg2_config_set_public_addr() 10{ 11uint8_tcmd_buffer[CONFIG_DATA_PUBADDR_LEN+2]; 12structnet_buf*buf; 13bt_addr_taddr=BLE_MAC_ADDR; 14cmd_buffer[0]=CONFIG_DATA_PUBADDR_OFFSET;//offset 15cmd_buffer[1]=CONFIG_DATA_PUBADDR_LEN;//configlen 16memcpy(cmd_buffer+2,addr.val,CONFIG_DATA_PUBADDR_LEN);//addr 17uint16_togf=0x3f,ocf=0x00c; 18uint16_topcode=(uint16_t)((ocf&0x03ff)|(ogf<10)); 19buf=bt_hci_cmd_create(opcode,sizeof(cmd_buffer)); 20if(!buf) 21{ 22return-ENOBUFS; 23} 24net_buf_add_mem(buf,cmd_buffer,sizeof(cmd_buffer)); 25returnbt_hci_cmd_send(opcode,buf); 26}

Prepare 流程 - 設(shè)置發(fā)射功率

配置發(fā)射功率的指令的 ogf 為0x3f,ocf 為0x00f。命令參數(shù)為是否啟用高功率模式(0x00啟用普通功率,0x01啟用高功率)和功率放大器輸出電平(允許的PA電平取決于設(shè)備)。

PA_Level值對(duì)應(yīng)功率

0:-14dBm(HighPower)

1:-11dBm(HighPower)

2:-8dBm(HighPower)

3:-5dBm(HighPower)

4:-2dBm(HighPower)

5:2dBm(HighPower)

6:4dBm(HighPower)

7:8dBm(HighPower)


		1staticintbluenrg2_set_tx_power_level(uint8_tEn_High_Power,uint8_tPA_Level)  2{  3uint8_tcmd_buffer[2];  4structnet_buf*buf;  5cmd_buffer[0]=En_High_Power;//En_High_Power  6cmd_buffer[1]=PA_Level;//configPA_Level  7uint16_togf=0x3f,ocf=0x00f;  8uint16_topcode=(uint16_t)((ocf&0x03ff)|(ogf<10));  9buf=bt_hci_cmd_create(opcode,sizeof(cmd_buffer)); 10if(!buf) 11{ 12return-ENOBUFS; 13} 14net_buf_add_mem(buf,cmd_buffer,sizeof(cmd_buffer)); 15returnbt_hci_cmd_send(opcode,buf); 16} Prepare 流程 - GATT 配置

GATT 初始化的指令的 ogf 為0x3f,ocf 為0x101,沒(méi)有其它參數(shù)。


		

1staticintbluenrg2_gatt_init(void) 2{ 3uint16_togf=0x3f,ocf=0x101; 4uint16_topcode=(uint16_t)((ocf&0x03ff)|(ogf<10)); 5returnbt_hci_cmd_send(opcode,NULL); 6}

Prepare 流程 - GAP 配置

初始化 GAP 層。注冊(cè)GAP服務(wù),并設(shè)置標(biāo)準(zhǔn) GAP 服務(wù)特性:設(shè)備名稱(chēng)、Appearance、外圍設(shè)備首選連接參數(shù)(僅限外圍設(shè)備)。

GAP 配置的指令的 ogf 為0x3f,ocf 為0x08a。配置為外圍設(shè)備,如果需要用做其他角色,需要修改此處;不啟用隱私策略(為保護(hù)地址不被竊取,進(jìn)行地址加密/解密,并周期更新);設(shè)置設(shè)備名字長(zhǎng)度。

privacy:

0x00:Privacydisabled

0x01:Privacyhostenabled

0x02:Privacycontrollerenabled


			

1#defineGAP_PERIPHERAL_ROLE(0x01) 2#defineGAP_BROADCASTER_ROLE(0x02) 3#defineGAP_CENTRAL_ROLE(0x04) 4#defineGAP_OBSERVER_ROLE(0x08) 5#defineprivacy_enabled(0x00) 6#definedevice_name_char_len(0x08) 7staticintbluenrg2_gap_init() 8{ 9uint8_tcmd_buffer[3]; 10structnet_buf*buf; 11cmd_buffer[0]=GAP_PERIPHERAL_ROLE;//role 12cmd_buffer[1]=privacy_enabled;//privacy 13cmd_buffer[2]=device_name_char_len;//device_name_char_len 14uint16_togf=0x3f,ocf=0x08a; 15uint16_topcode=(uint16_t)((ocf&0x03ff)|(ogf<10)); 16buf=bt_hci_cmd_create(opcode,sizeof(cmd_buffer)); 17if(!buf) 18{ 19return-ENOBUFS; 20} 21net_buf_add_mem(buf,cmd_buffer,sizeof(cmd_buffer)); 22returnbt_hci_cmd_send(opcode,buf); 23}

啟動(dòng)事件處理

對(duì)于啟動(dòng)流程的返回響應(yīng),需要由event_process()回調(diào)進(jìn)行判斷和推進(jìn)。這里為了方便,只對(duì)CMD_COMPLETE事件進(jìn)行判斷處理,推進(jìn) Prepare 流程進(jìn)行。

GAP 設(shè)置完成后調(diào)用bt_hci_set_prepare_ready()結(jié)束流程。


			

1voidevent_process(uint8_tevent,structnet_buf*buf) 2{ 3if(state==STATE_POLLING_PREPARING)//bootdonothing 4{ 5if(event==BT_HCI_EVT_CMD_COMPLETE)//onlycomplete 6{ 7printk("prepare_event_process,step:%d ",step); 8switch(step) 9{ 10case1://closehostjustnow 11bluenrg2_config_set_public_addr();//step2set_public_addr 12step=2; 13break; 14case2: 15bluenrg2_set_tx_power_level(1,4);//step3set_public_addr 16step=3; 17break; 18case3: 19bluenrg2_gatt_init();//step4gatt_ini 20step=4; 21break; 22case4: 23bluenrg2_gap_init();//step5gap_ini 24step=5; 25break; 26case5: 27bt_hci_set_prepare_ready();//finishprepare 28step=0; 29break; 30} 31} 32} 33}

啟動(dòng)流程注冊(cè)

將上述實(shí)現(xiàn)的啟動(dòng)流程的函數(shù)指針打包到bt_hci_chipset_driver結(jié)構(gòu)體中,供協(xié)議棧調(diào)用注冊(cè)。


			

1staticconststructbt_hci_chipset_driverchipset_drv={ 2init_work,boot_start,prepare_start,event_process, 3}; 4//publicdrvAPI 5conststructbt_hci_chipset_driver*bt_hci_chipset_impl_local_instance(void) 6{ 7return&chipset_drv; 8}

驗(yàn)證


完成 HCI 接口的時(shí)候雖然成功運(yùn)行了 Beacon 例程,但 Beacon 例程是不需要進(jìn)行 chipset 啟動(dòng)配置流程的(運(yùn)行時(shí)啟用的是common空白回調(diào))。運(yùn)行外設(shè)的心率例程驗(yàn)證 Bluenrg2 藍(lán)牙芯片啟動(dòng)流程。


			

1|/ 2-RT-ThreadOperatingSystem 3/|5.0.1buildSep20202322:16:27 42006-2022CopyrightbyRT-Threadteam 5docomponentsinitialization. 6initializerti_board_end:0done 7initializestm32l4_hw_lptim_init:0done 8initializefinsh_system_init:0done 9msh>zephyr 10zephyr_polling_init 11bt_init_hci_driver 12SPI_init_processdevice_name:spi10,spi_name:spi1,rate:1000000,databits:8,LSB_MSB:1,Master_Slave:0,CPOL:0,CPHA:1 13SPI_init_processcs_pin_num:1,irq_pin_num:0 14hci_driver_open,SPI_config_finish 15I:(bt_hci_core)hci_init():3230:workstart. 16msh>prepare_event_process,step:1 17prepare_event_process,step:2 18prepare_event_process,step:3 19prepare_event_process,step:4 20prepare_event_process,step:5 21I:(bt_hci_core)hci_init_end():3205:workend. 22E:(bt_smp)smp_self_test():5695:smp_self_teststart 23I:(bt_hci_core)bt_dev_show_info():3008:Identity:02:8000:00:f5(public) 24I:(bt_hci_core)bt_dev_show_info():3042:HCI:version5.2(0x0b)revision0x1222,manufacturer0x0030 25I:(bt_hci_core)bt_dev_show_info():3044:LMP:version5.2(0x0b)subver0x0015 26Bluetoothinitialized 27Advertisingsuccessfullystarted 28Connected 29BASNotificationsenabled 30HRSnotificationsenabled


		


		

prepare_event_process 步驟的日志輸出正常,設(shè)備連接、電池服務(wù)、心率服務(wù)正常。


		

wKgZomUs72CAIdYIAAK4rMmKRDw317.jpg


		


		

———————End——————

wKgZomUs72GANZZYAHiX-BnG6Ho137.gif

點(diǎn)擊閱讀原文進(jìn)入官網(wǎng)


原文標(biāo)題:RT-Thread平臺(tái) zephyr_polling軟件包 Bluenrg2 藍(lán)牙芯片啟動(dòng)流程

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


聲明:本文內(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)投訴
  • RT-Thread
    +關(guān)注

    關(guān)注

    32

    文章

    1390

    瀏覽量

    41722

原文標(biāo)題:RT-Thread平臺(tái) zephyr_polling軟件包 Bluenrg2 藍(lán)牙芯片啟動(dòng)流程

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    深度剖析 RT-Thread 線(xiàn)程調(diào)度流程

    RT-Thread調(diào)度第一個(gè)線(xiàn)程的主要流程分如下:rtthread_startup:RTT的啟動(dòng)函數(shù),主要負(fù)責(zé)板級(jí)驅(qū)動(dòng),調(diào)度器,系統(tǒng)線(xiàn)程初始化,啟動(dòng)調(diào)度的工作
    的頭像 發(fā)表于 06-25 18:24 ?625次閱讀
    深度剖析 <b class='flag-5'>RT-Thread</b> 線(xiàn)程調(diào)度<b class='flag-5'>流程</b>

    2025 RT-Thread全球技術(shù)大會(huì)議程正式發(fā)布!

    RT-ThreadGlobalTechConference(RT-ThreadGTC,RT-Thread全球技術(shù)大會(huì))是聚焦基礎(chǔ)軟件技術(shù)創(chuàng)新與實(shí)踐的嵌入式技術(shù)盛會(huì),持續(xù)推動(dòng)技術(shù)價(jià)值轉(zhuǎn)化
    的頭像 發(fā)表于 05-27 19:28 ?561次閱讀
    2025 <b class='flag-5'>RT-Thread</b>全球技術(shù)大會(huì)議程正式發(fā)布!

    RT-Thread Studio更新軟件包為什么不成功呢?

    RT-Thread Studio更新軟件包出現(xiàn) MESSAGE cmd_package_update 462 WARNING Error message : local variable
    發(fā)表于 05-27 06:53

    RT-Thread審核團(tuán)招募: 深度參與開(kāi)源RTOS社區(qū)治理與演進(jìn)

    全球開(kāi)發(fā)者招募:RT-Thread審核團(tuán)(ReviewTeam)正式開(kāi)放申請(qǐng)!在開(kāi)源的世界里,代碼審查(CodeReview)是保證軟件質(zhì)量、促進(jìn)技術(shù)交流的關(guān)鍵環(huán)節(jié)。RT-Thread作為全球領(lǐng)先
    的頭像 發(fā)表于 05-21 18:02 ?580次閱讀
    <b class='flag-5'>RT-Thread</b>審核團(tuán)招募: 深度參與開(kāi)源RTOS社區(qū)治理與演進(jìn)

    中新社:RT-Thread攜“睿擎平臺(tái)”亮相工博會(huì) | 媒體視角

    4月23日,成都國(guó)際工業(yè)博覽會(huì)拉開(kāi)帷幕。中國(guó)新聞網(wǎng)專(zhuān)訪(fǎng)RT-Thread睿賽德,以“國(guó)產(chǎn)操作系統(tǒng)再亮劍,睿擎平臺(tái)開(kāi)啟工業(yè)新時(shí)代”為題,報(bào)道了“睿擎工業(yè)開(kāi)發(fā)平臺(tái)”在工博會(huì)上首發(fā)亮相。中國(guó)新聞網(wǎng)專(zhuān)訪(fǎng)
    的頭像 發(fā)表于 04-24 11:16 ?490次閱讀
    中新社:<b class='flag-5'>RT-Thread</b>攜“睿擎<b class='flag-5'>平臺(tái)</b>”亮相工博會(huì) | 媒體視角

    如何將RT-Thread移植到NXP MCUXPressoIDE上

    RT-Thread默認(rèn)支持的IDE只有IAR 和 Keil, 那如何將RT-Thread移植到NXP MCUXPressoIDE上呢?本文內(nèi)容比較簡(jiǎn)單但稍有瑣碎,希望對(duì)有需要的小伙伴有所幫助。
    的頭像 發(fā)表于 02-13 10:37 ?1830次閱讀
    如何將<b class='flag-5'>RT-Thread</b>移植到NXP MCUXPressoIDE上

    全志科技亮相2024 RT-Thread開(kāi)發(fā)者大會(huì)

    近日,操作系統(tǒng)廠(chǎng)商睿賽德科技在上海舉辦“2024 RT-Thread開(kāi)發(fā)者大會(huì)”。全志科技作為芯片設(shè)計(jì)廠(chǎng)商受邀參展并進(jìn)行了主題分享。會(huì)上,全志科技系統(tǒng)軟件中心資深架構(gòu)師進(jìn)行了名為《擁抱生態(tài),和而共贏
    的頭像 發(fā)表于 12-31 16:47 ?1145次閱讀

    從開(kāi)源中來(lái)到開(kāi)源中去-RT-Thread北京社區(qū)篇

    RT-Thread今年全域推行不同區(qū)域社區(qū)網(wǎng),通過(guò)建立區(qū)域社區(qū)網(wǎng),構(gòu)建更加緊密聯(lián)系的開(kāi)源社區(qū),實(shí)現(xiàn)更廣泛的開(kāi)源資源共享,讓更多的RT-Thread開(kāi)發(fā)者受益。今年8月份RT-Thread正式
    的頭像 發(fā)表于 11-29 01:05 ?440次閱讀
    從開(kāi)源中來(lái)到開(kāi)源中去-<b class='flag-5'>RT-Thread</b>北京社區(qū)篇

    RT-Thread上CAN實(shí)踐

    開(kāi)箱測(cè)試RT-Thread官方已完成了對(duì)英飛凌XMC7200EVK的移植,通過(guò)shell可以看到做好了uart3的console。本文將介紹如何進(jìn)行RT-ThreadCan移植。接下來(lái)我們要完成CAN_FD的驅(qū)動(dòng)移植,并正常啟動(dòng)
    的頭像 發(fā)表于 11-13 01:03 ?2007次閱讀
    <b class='flag-5'>RT-Thread</b>上CAN實(shí)踐

    開(kāi)源共生 商業(yè)共贏 | RT-Thread 2024開(kāi)發(fā)者大會(huì)報(bào)名啟動(dòng)

    親愛(ài)的RT-Thread開(kāi)發(fā)者我們很高興地宣布,一年一度的RDC(RT-ThreadDeveloperConference,RT-Thread開(kāi)發(fā)者大會(huì))正式啟動(dòng)報(bào)名!2024
    的頭像 發(fā)表于 10-29 08:06 ?916次閱讀
    開(kāi)源共生 商業(yè)共贏 | <b class='flag-5'>RT-Thread</b> 2024開(kāi)發(fā)者大會(huì)報(bào)名<b class='flag-5'>啟動(dòng)</b>!

    課程上線(xiàn) - RT-Thread應(yīng)用開(kāi)發(fā)實(shí)踐課程上線(xiàn)慕課平臺(tái)啦!

    我們非常高興地告訴大家,由廣東機(jī)電職業(yè)技術(shù)學(xué)院的老師們制作的,使用《RT-Thread應(yīng)用開(kāi)發(fā)實(shí)踐》作為教材的課程——嵌入式操作系統(tǒng)應(yīng)用,正式上線(xiàn)慕課平臺(tái)啦!歡迎各位想要系統(tǒng)學(xué)習(xí)RT-Thread
    的頭像 發(fā)表于 09-14 08:07 ?629次閱讀
    課程上線(xiàn) - <b class='flag-5'>RT-Thread</b>應(yīng)用開(kāi)發(fā)實(shí)踐課程上線(xiàn)慕課<b class='flag-5'>平臺(tái)</b>啦!

    【大連】9月7日RT-Thread巡回線(xiàn)下培訓(xùn)-OpenMV機(jī)器視覺(jué)

    親愛(ài)的RT-Thread社區(qū)成員們:2024年RT-Thread全球開(kāi)發(fā)者線(xiàn)下培訓(xùn)拉開(kāi)帷幕啦!24年全球巡回培訓(xùn)將覆蓋超10座城市及國(guó)家,為開(kāi)發(fā)者提供一個(gè)深入學(xué)習(xí)RT-Thread嵌入式開(kāi)發(fā)的絕佳
    的頭像 發(fā)表于 09-01 08:02 ?3523次閱讀
    【大連】9月7日<b class='flag-5'>RT-Thread</b>巡回線(xiàn)下培訓(xùn)-OpenMV機(jī)器視覺(jué)

    2024 RT-Thread全球巡回 線(xiàn)下培訓(xùn)火熱來(lái)襲!

    親愛(ài)的RT-Thread社區(qū)成員們:我們非常高興地宣布,2024年RT-Thread全球開(kāi)發(fā)者線(xiàn)下培訓(xùn)即將拉開(kāi)帷幕!24年全球巡回培訓(xùn)將覆蓋超10座城市及國(guó)家,為開(kāi)發(fā)者提供一個(gè)深入學(xué)習(xí)RT-Thread嵌入式開(kāi)發(fā)的絕佳機(jī)會(huì)。
    的頭像 發(fā)表于 08-07 08:35 ?2755次閱讀
    2024 <b class='flag-5'>RT-Thread</b>全球巡回 線(xiàn)下培訓(xùn)火熱來(lái)襲!

    【好書(shū)推薦】RT-Thread設(shè)備驅(qū)動(dòng)開(kāi)發(fā)指南

    近年來(lái)國(guó)內(nèi)芯片產(chǎn)業(yè)和物聯(lián)網(wǎng)產(chǎn)業(yè)的快速崛起,行業(yè)發(fā)展迫切需要更多人才,尤其需要掌握嵌入式操作系統(tǒng)等底層技術(shù)的人才。隨著RT-Thread被更廣泛地應(yīng)用于行業(yè)中,開(kāi)發(fā)者對(duì)嵌入式驅(qū)動(dòng)開(kāi)發(fā)的需求越來(lái)越
    的頭像 發(fā)表于 08-01 08:35 ?1256次閱讀
    【好書(shū)推薦】<b class='flag-5'>RT-Thread</b>設(shè)備驅(qū)動(dòng)開(kāi)發(fā)指南

    RT-Thread 新里程碑達(dá)成——GitHub Star 破萬(wàn)!

    RT-Thread實(shí)時(shí)操作系統(tǒng)開(kāi)源項(xiàng)目在GitHub上的star數(shù)量突破一萬(wàn)!截止發(fā)文,RT-Thread作為實(shí)時(shí)操作系統(tǒng)在業(yè)界Star數(shù)量排名第一!倉(cāng)庫(kù)地址:https://github.com
    的頭像 發(fā)表于 07-04 08:35 ?736次閱讀
    <b class='flag-5'>RT-Thread</b> 新里程碑達(dá)成——GitHub Star 破萬(wàn)!
    主站蜘蛛池模板: 日本精品高清一区二区2021 | 免费在线色视频 | 操熟逼 | 国产色爽女小说免费看 | 看免费黄色大片 | 色婷婷激情综合 | 91大神在线观看视频 | 很黄的网站在线观看 | 天天爱天天做久久天天狠狼 | 欧美两性网 | 四虎最新永久免费网址 | 伊人伊成久久人综合网777 | 91亚洲视频在线 | 天天舔夜夜操 | 网站啪啪 | xxxxx69日本老师hd | 国产视频h| 欧美成人午夜不卡在线视频 | 日本www网站| 濑亚美莉vs黑人欧美视频 | 毛片高清一区二区三区 | 日本在线黄色网址 | 免费网站日本永久免费观看 | 国产片91人成在线观看 | 亚洲免费色图 | 亚洲xx视频 | 嫩草影院网站入口 | 天堂影院在线 | 日本黄色大片免费看 | 亚洲 欧美 自拍 卡通 综合 | 四虎最新永久免费网址 | 最近最新视频中文字幕4 | 五月激情婷婷综合 | 天天操天天干天天 | 国产精品漂亮美女在线观看 | 美女黄页免费 | 成 人 黄 色视频免费播放 | 日本特黄绿像大片免费看 | japan高清视频乱xxxxx | 男人的午夜天堂 | bt天堂网在线 |