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

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

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

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

[HPM雜談]你想要了解的先楫hpm_sdk開(kāi)發(fā)都在這里系列 (一)

先楫半導(dǎo)體HPMicro ? 2023-09-26 10:00 ? 次閱讀

一、背景

最近在跟一些開(kāi)發(fā)者交流過(guò)程中,或者開(kāi)發(fā)者群里反饋,感覺(jué)先楫單片機(jī)開(kāi)發(fā)方式不同于以往的單片機(jī)開(kāi)發(fā)方式,或者開(kāi)發(fā)方式?jīng)]接觸過(guò)導(dǎo)致無(wú)從下手,或者是覺(jué)得自己的APP需要嚴(yán)重依賴hpm_sdk等等。

在這些反饋當(dāng)中,覺(jué)得有必要出個(gè)雜談文章,談一談hpm_sdk的開(kāi)發(fā)方式的優(yōu)缺點(diǎn),以及相比以往的單片機(jī)傳統(tǒng)開(kāi)發(fā)方式的不同點(diǎn)。以此可以帶給開(kāi)發(fā)者一些啟發(fā),更能方便開(kāi)發(fā)者更快借助hpm_sdk進(jìn)行開(kāi)發(fā)自己的應(yīng)用。

本文也會(huì)借助一些開(kāi)發(fā)者分享過(guò)的開(kāi)發(fā)經(jīng)驗(yàn),感謝hpmicro開(kāi)發(fā)者貢獻(xiàn)的文章。


二、開(kāi)發(fā)差異

(一)IDE

先楫的目前通用MCU采用的內(nèi)核架構(gòu)都是riscv,這一點(diǎn)就不同于國(guó)內(nèi)大同小異的各種arm的cortex-M系列的單片機(jī),甚至可以B2B兼容STM32的單片機(jī)也一樣,不能夠支持ARM自己的平臺(tái)-Keil MDK。

對(duì)于嚴(yán)重依賴keil開(kāi)發(fā)的工程師來(lái)說(shuō),特別目前國(guó)內(nèi)的很多開(kāi)發(fā)工程師來(lái)說(shuō),這確實(shí)是不夠友好的一個(gè)點(diǎn)。畢竟keil經(jīng)過(guò)多年的發(fā)展,其傻瓜式的界面操作,網(wǎng)上豐富的踩坑記錄,都足夠讓一個(gè)沒(méi)接觸過(guò)單片機(jī)開(kāi)發(fā)的都能輕松入門(mén)。

但是Keil這個(gè)本身不是免費(fèi)的商用IDE,盡管?chē)?guó)內(nèi)很多cortex-M單片機(jī)的芯片廠家提供的類(lèi)似STM32的Firmware_Library包,里面的工程都支持了keil,但是也沒(méi)說(shuō)明對(duì)keil這個(gè)IDE進(jìn)行了版權(quán)購(gòu)買(mǎi),這帶來(lái)的版權(quán)問(wèn)題責(zé)任就分給了芯片開(kāi)發(fā)者,雖然國(guó)內(nèi)很多可以通過(guò)破解方式進(jìn)行商用,但是畢竟在商用的過(guò)程中時(shí)時(shí)刻刻得注意著版權(quán)問(wèn)題。

先楫開(kāi)發(fā)雖然不支持keil,但是在提供的IDE上,使用segger(大名鼎鼎Jlink調(diào)試器的廠家)自己開(kāi)發(fā)的IDE,也就是SEGGER Embedded Studio for RISC-V,這個(gè)同樣不是免費(fèi)的商用IDE,但是先楫在版權(quán)上十分重視,購(gòu)買(mǎi)了其芯片開(kāi)發(fā)的商用版權(quán),目前可以不限定于SEGGER Embedded Studio的版本,而且可以讓開(kāi)發(fā)者直接商用開(kāi)發(fā),避免版權(quán)問(wèn)題。這個(gè)IDE同樣跟keil操作類(lèi)似,通過(guò)可視化操作進(jìn)行配置即可,配合其Jlink更是能夠讓調(diào)試更加友好。

IDE的編譯鏈支持上,支持了segger自身的編譯鏈,也支持了gcc編譯鏈,同樣也支持andes編譯鏈。

開(kāi)發(fā)者文章: (SEGGER Embedded Studio for RISC-V,for HPMicro Devices 解決首次使用激活問(wèn)題,提示無(wú)License

另外SEGGER Embedded Studio 也有對(duì)應(yīng)user manual手冊(cè),以便開(kāi)發(fā)者查缺補(bǔ)漏。網(wǎng)頁(yè):

6b80dda2-5c10-11ee-9788-92fbcf53809c.png


(二)構(gòu)建系統(tǒng)

對(duì)于國(guó)內(nèi)的arm的cortex-m的單片機(jī)廠家來(lái)說(shuō),并沒(méi)有所謂的什么構(gòu)建系統(tǒng)開(kāi)發(fā)環(huán)境。但是對(duì)于有些開(kāi)發(fā)者如果開(kāi)發(fā)過(guò)樂(lè)鑫的產(chǎn)品,比如esp32,使用的esp-idf就是使用的cmake構(gòu)建系統(tǒng)(早期的esp-idf還是makefile版本),還有樹(shù)莓派的rp2040的pico-sdk。這種構(gòu)建系統(tǒng)入門(mén)有點(diǎn)門(mén)檻,需要有一定的cmake基礎(chǔ)(比如cmakelist語(yǔ)法)以及相關(guān)環(huán)境搭建經(jīng)驗(yàn),但這也感覺(jué)是未來(lái)嵌入式發(fā)展的趨勢(shì),通過(guò)cmakelists.txt管理配置生成各大跨平臺(tái)的工程(比如先楫開(kāi)發(fā)中,生成SEGGER Embedded Studio 以及后續(xù)先楫支持的IDE)、生成的makefile文件可以給各大平臺(tái)編譯器解析,

對(duì)于芯片原廠和開(kāi)發(fā)者來(lái)說(shuō),這種構(gòu)建系統(tǒng)可以讓多種芯片系列,組件包等等只需要支持一套SDK,而不需要提供多種library芯片包,可以擴(kuò)展構(gòu)建多種IDE,比如命令或者可視化界面生成EGGER Embedded Studio工程;支持cmake構(gòu)建的vscode,clion等等跨平臺(tái)開(kāi)發(fā)。


三、開(kāi)發(fā)優(yōu)勢(shì)

項(xiàng)目工程依靠cmakelists.txt文件進(jìn)行管理,這種管理方式類(lèi)似在keil進(jìn)行相關(guān)路徑加入或者加入自定義編譯宏定義等,比如:

1、設(shè)置一些自定義編譯宏定義開(kāi)關(guān)

2、根據(jù)不同編譯類(lèi)型配置不同的編譯選項(xiàng)和鏈接選項(xiàng)

3、添加頭文件路徑、編譯宏等常規(guī)操作

4、添加源碼編譯

5、添加extern組件等操作

以上是不是覺(jué)得這種開(kāi)發(fā)方式,IDE比如keil在界面操作也有,但是對(duì)于cmake來(lái)說(shuō),單純一個(gè)cmakelist文件就可以操作完成,熟悉入門(mén)后也能大大提高開(kāi)發(fā)效率。

本文以hpm_sdk1.2進(jìn)行說(shuō)明,簡(jiǎn)單舉例一些常用的命令說(shuō)明,一個(gè)cmakelist文件管理的方便好處。

更多的命令接口可以參考sdk中的sample的cmakelist,以及cmake文件夾里面的封裝的命令函數(shù)。不在本文闡述范圍內(nèi)。

6b94897e-5c10-11ee-9788-92fbcf53809c.png

該版本已經(jīng)支持在sdk以外創(chuàng)建自己的Board, 但在sdk以外開(kāi)發(fā)自己的應(yīng)用一直都是可以的。

(一)創(chuàng)建自己的AP應(yīng)用文件夾

新建一個(gè)自己一個(gè)APP文件夾,里面放置一個(gè)Board-這里我使用的是hpm6750_rc,這里從hpm_sdk里面的board的hpm6750evkmini中提取,并把hpm6750evkmini.yaml改為hpm6750_rc.yaml,如下:

6b9be3fe-5c10-11ee-9788-92fbcf53809c.png

從hpm_sdk復(fù)制一個(gè)sample,比如hello_world。然后在自己創(chuàng)建的應(yīng)用文件夾新建個(gè)build,進(jìn)入到該build文件夾,這時(shí)候使用命令:

cmake -G Ninja -DBOARD=rc_hpm_evk -DBOARD_SEARCH_PATH=your custom/rcsn_project/board/ -DCMAKE_BUILD_TYPE=flash_xip ..

這時(shí)候打開(kāi)build文件夾里面的segger_embedded_studio,打開(kāi)ses這個(gè)IDE,可以看到boards已經(jīng)變成自己項(xiàng)目上的Board,以及自己的application已經(jīng)被添加上來(lái)。

6ba4af70-5c10-11ee-9788-92fbcf53809c.png

(二)定義宏開(kāi)關(guān),預(yù)處理定義

在keil上,預(yù)處理定義在option上可以手動(dòng)輸入定義

6bb77aa6-5c10-11ee-9788-92fbcf53809c.png


同樣在segger_embedded_studio中也有類(lèi)似的定義。

6bc418e2-5c10-11ee-9788-92fbcf53809c.png


但是hpm_sdk中,并不需要開(kāi)發(fā)者自己手動(dòng)去添加,在makelists使用命令: sdk_compile_definitions, 如此就可以進(jìn)行定義預(yù)處理符號(hào)。

6bd63b1c-5c10-11ee-9788-92fbcf53809c.png

(三)頭文件路徑加入

比如在keil里面就有對(duì)應(yīng)的控件操作

6bb77aa6-5c10-11ee-9788-92fbcf53809c.png

那么在segger_embedded_studio也有類(lèi)似操作界面

6bc418e2-5c10-11ee-9788-92fbcf53809c.png

在hpm_sdk的構(gòu)建當(dāng)中,同樣也不需要用戶自己去界面操作,直接可以在cmakelists通過(guò)sdk_inc 命令設(shè)置,比如自己的工程定義以下工程目錄,每個(gè)目錄里面有個(gè)inc,這個(gè)就是需要包含的頭文件路徑。

6bfb3c64-5c10-11ee-9788-92fbcf53809c.png

6c0c14c6-5c10-11ee-9788-92fbcf53809c.png

(四)加入源文件

像keil一樣,segger_embedded_studio也有自己的源文件目錄結(jié)構(gòu),比如需要添加上述所說(shuō)的drivers里面的文件,可以通過(guò)使用sdk_app_src命令進(jìn)行設(shè)置。比如:

6c181208-5c10-11ee-9788-92fbcf53809c.png

(五)編譯相關(guān)

比如設(shè)置優(yōu)化等級(jí)、GCC編譯參數(shù)、指令集選擇等等。都可以通過(guò)sdk_compile_options命令設(shè)置

設(shè)置O3優(yōu)化可以使用:

sdk_compile_options("-O3")

設(shè)置gcc特定警告

sdk_compile_options("-Wall")

設(shè)置ABI和ISA

sdk_compile_options("-mabi=ilp32d")sdk_compile_options("-march=rv32gc")


四、開(kāi)發(fā)劣勢(shì)

(一)入門(mén)門(mén)檻相對(duì)高

目前來(lái)說(shuō),cmake構(gòu)建方式在MCU開(kāi)發(fā)上并不常見(jiàn),也存在一定的入門(mén)門(mén)檻;

但對(duì)于項(xiàng)目的構(gòu)建優(yōu)化和管理是效率顯著的,比如引入一個(gè)第三方中間件,只需要在此中間件內(nèi)部通過(guò)CMakelists管理好自身文件鏈接,項(xiàng)目通過(guò)條件包含,能夠最大減少中間件帶來(lái)的耦合度。

6c2afd3c-5c10-11ee-9788-92fbcf53809c.png

需要有一定的cmake基礎(chǔ),也帶來(lái)一定的學(xué)習(xí)成本。

(二)工程管理相對(duì)約束

在傳統(tǒng)的MCU開(kāi)發(fā)中,很多開(kāi)發(fā)者都喜歡把MCU廠家自身的驅(qū)動(dòng)和組件源碼都加入到自己的工程目錄下,這樣方便自己管理,甚至可以自己改動(dòng)官方庫(kù)代碼(這點(diǎn)是極其不推薦的行為)。


但hpm_sdk更多傾向于開(kāi)發(fā)者的APP應(yīng)用與SDK分開(kāi),這種開(kāi)發(fā)好比是上位機(jī)的QT開(kāi)發(fā),在QT開(kāi)發(fā)中,通過(guò)pro/pri文件管理導(dǎo)入QT的官方庫(kù)使用,如果不想使用那就不開(kāi)啟對(duì)應(yīng)的庫(kù),又好比python開(kāi)發(fā),通過(guò)Import方式自行選擇。


這種開(kāi)發(fā)方式需要把hpm_sdk路徑放在對(duì)應(yīng)的文件夾中,并把路徑添加到環(huán)境變量,這好比是軟件的安裝,先楫的所有芯片系列都依賴與這個(gè)hpm_sdk,用戶只需關(guān)心自己的應(yīng)用開(kāi)發(fā)路徑,在拷貝的過(guò)程中也只需要拷貝自身應(yīng)用,但前提對(duì)方也得"安裝"了hpm_sdk。


這種約束方法對(duì)于有些開(kāi)發(fā)者來(lái)說(shuō)確實(shí)不夠友好,當(dāng)然未來(lái)先楫也不排除支持把hpm_sdk所需要的文件能讓開(kāi)發(fā)者自行導(dǎo)入到自己工程目錄的需求,比如類(lèi)似stm32cubemx生成初始化外設(shè)工具,但hpm_sdk的cmake構(gòu)建方式仍是主要開(kāi)發(fā)方式。

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

    關(guān)注

    6044

    文章

    44628

    瀏覽量

    638994
  • SDK
    SDK
    +關(guān)注

    關(guān)注

    3

    文章

    1047

    瀏覽量

    46318
  • HPM
    HPM
    +關(guān)注

    關(guān)注

    1

    文章

    38

    瀏覽量

    7791
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    半導(dǎo)體HPM_SDK v1.7.0發(fā)布!這些更新你值得關(guān)注!

    半導(dǎo)體HPM_SDK v1.7.0發(fā)布!這些更新你值得關(guān)注!
    的頭像 發(fā)表于 02-08 13:42 ?90次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b>半導(dǎo)體<b class='flag-5'>HPM_SDK</b> v1.7.0發(fā)布!這些更新你值得關(guān)注!

    半導(dǎo)體hpm_apps v1.7.0上線

    半導(dǎo)體hpm_apps v1.7.0上線
    的頭像 發(fā)表于 02-08 13:41 ?60次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b>半導(dǎo)體<b class='flag-5'>hpm</b>_apps v1.7.0上線

    半導(dǎo)體HPM_SDK v1.8.0 發(fā)布

    半導(dǎo)體HPM_SDK v1.8.0 發(fā)布
    的頭像 發(fā)表于 02-08 13:39 ?84次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b>半導(dǎo)體<b class='flag-5'>HPM_SDK</b> v1.8.0 發(fā)布

    基于HPM_SDK_ENV開(kāi)發(fā)應(yīng)用程序的升級(jí)處理

    基于HPM_SDK_ENV開(kāi)發(fā)應(yīng)用程序的方式HPM_SDK_ENV是半導(dǎo)體MCU的Windows集成
    的頭像 發(fā)表于 02-08 13:38 ?502次閱讀
    基于<b class='flag-5'>HPM_SDK</b>_ENV<b class='flag-5'>開(kāi)發(fā)</b>應(yīng)用程序的升級(jí)處理

    HPM6E00技術(shù)日 | 百人研討共話工業(yè)應(yīng)用創(chuàng)新及發(fā)展趨勢(shì)

    、內(nèi)嵌ESC的高性能RISC-V內(nèi)核微控制器系列——HPM6E00產(chǎn)品及其應(yīng)用,由的市場(chǎng)、技術(shù)和方案專(zhuān)家們以及
    發(fā)表于 09-02 10:14

    半導(dǎo)體hpm_apps v1.6.0上線

    半導(dǎo)體hpm_apps v1.6.0上線
    的頭像 發(fā)表于 08-02 08:18 ?1017次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b>半導(dǎo)體<b class='flag-5'>hpm</b>_apps v1.6.0上線

    半導(dǎo)體hpm_sdk v1.6.0上線

    HPM6E80HPM6E00系列MCU是款高性能、高實(shí)時(shí)以太互聯(lián),RISC-V雙核微控制器。HPM6E00系列提供多達(dá)4端口千兆以太交換
    的頭像 發(fā)表于 07-02 08:17 ?635次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b>半導(dǎo)體<b class='flag-5'>hpm_sdk</b> v1.6.0上線

    有獎(jiǎng)提問(wèn)!半導(dǎo)體HPM6E00系列新品發(fā)布會(huì)!!

    , EtherCAT Slave Controller) 的高性能MCU產(chǎn)品——HPM6E00系列新品全面上市! 直關(guān)注的小伙伴們應(yīng)
    發(fā)表于 06-20 11:45

    半導(dǎo)體 hpm_sdk v1.5.0 正式發(fā)布

    半導(dǎo)體 hpm_sdk v1.5.0 正式發(fā)布
    的頭像 發(fā)表于 04-12 08:17 ?675次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b>半導(dǎo)體 <b class='flag-5'>hpm_sdk</b> v1.5.0 正式發(fā)布

    半導(dǎo)體 hpm_sdk v1.5.0 正式發(fā)布

    半導(dǎo)體 hpm_sdk v1.5.0 正式發(fā)布!功能升級(jí)更強(qiáng)大 版本更新概況 新支持的IDE IAR Embedded Workbench for RISC-V (測(cè)試版本3.20.1) 新增
    發(fā)表于 04-08 11:14

    半導(dǎo)體hpm_sdk v1.5.0正式發(fā)布!

    可以將當(dāng)前app所使用到hpm_sdk的文件復(fù)制到app本地, 同時(shí)更新app的CMakeLists.txt使之使用本地化之后的hpm_sdk
    的頭像 發(fā)表于 04-08 10:02 ?1043次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b>半導(dǎo)體<b class='flag-5'>hpm_sdk</b> v1.5.0正式發(fā)布!

    半導(dǎo)體攜手OpenHarmony正式發(fā)布HPMicro ohos v1.0.0

    各位關(guān)注的小伙伴們,基于OpenHarmony 4.0-Release版本和hpm_sdk v1.4.0 版本的 HPMicro ohos v1.0.0 正式發(fā)布了。
    的頭像 發(fā)表于 04-02 10:45 ?1318次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b>半導(dǎo)體攜手OpenHarmony正式發(fā)布HPMicro ohos v1.0.0

    基于HPM5300 RISC-V內(nèi)核MCU的HPM5361EVK開(kāi)發(fā)板測(cè)評(píng)效果(二)

    HPM5361EVK是基于HPM5300系列高性能RISC-V內(nèi)核MCU的
    的頭像 發(fā)表于 03-12 10:30 ?3137次閱讀
    基于<b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>HPM</b>5300 RISC-V內(nèi)核MCU的<b class='flag-5'>HPM</b>5361EVK<b class='flag-5'>開(kāi)發(fā)</b>板測(cè)評(píng)效果(二)

    半導(dǎo)體HPMicro Nuttx v0.2.0正式發(fā)布!

    各位關(guān)注的小伙伴們,基于Nuttx v12.4.0版本和hpm_sdk v1.4.0版本的HPMicro Nuttx v0.2.0正式發(fā)布了。
    的頭像 發(fā)表于 03-12 10:22 ?1443次閱讀

    HPM5361EVK開(kāi)發(fā)板,網(wǎng)友測(cè)評(píng)效果(二)

    上海半導(dǎo)體舉辦的HPM5361EVK開(kāi)發(fā)板試用活動(dòng)圓滿結(jié)束,廣大工程師和愛(ài)好者們踴躍參與此次試用并提交報(bào)告。經(jīng)過(guò)
    的頭像 發(fā)表于 03-12 08:16 ?2382次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>HPM</b>5361EVK<b class='flag-5'>開(kāi)發(fā)</b>板,網(wǎng)友測(cè)評(píng)效果(二)
    主站蜘蛛池模板: 欧美日本一区二区三区生 | ts国产| xxx69日本hd| 欧美乱论视频 | 乱人伦精品一区二区 | 成 人 免费观看网站 | 国产福利99 | 免费观看在线观看 | 成人免费视频一区二区三区 | 成人a一级毛片免费看 | 六月丁香激情网 | 日本免费观看网站 | 免费一级特黄 | 亚洲综合在线一区 | 快色视频免费 | 深点再深一点好爽好多水 | 天天射天天草 | 高清午夜线观看免费 | 国产网站黄色 | 久久久国产乱子伦精品 | 久久久久久久国产精品影院 | 国产伦精品一区二区三区免费 | 手机国产看片 | 成年香蕉大黄美女美女 | 天天综合视频网 | 国产午夜免费视频片夜色 | 国产成人精品一区 | 国产激情久久久久影院小草 | 婷婷亚洲综合五月天在线 | 欧美三级网址 | 99久久免费精品视频 | 国产精品资源网 | 午夜精品视频在线看 | 插插插叉叉叉 | 日韩三级小视频 | 手机在线完整视频免费观看 | 久久精品视频国产 | 成人永久免费视频网站在线观看 | 人人艹人人艹 | 午夜视频在线免费播放 | 免费国产成高清人在线视频 |