色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

HPM SDK指南 | 我的板子我做主!

先楫半導體HPMicro ? 2022-12-12 17:56 ? 次閱讀

本文介紹了基于HPM SDK如何新建一個新的工程供用戶項目開發,包括HPM SDK代碼結構介紹,新BOARD適配驅動運行以及新工程的建立和注意事項。

先楫半導體面向用戶同時提供HPM SDK的集成工具集sdk_env,本文的介紹基于hpm sdk版本0.14.0,基于工具集sdk_env_v0.14.0。搭配以下費教授的教程視頻,體驗更佳哦,趕緊來一睹為快!

【先楫“芯”教程】如何創建HPM_SDK例程?

----- 以下為本指南的詳細內容 -----?

HPMSDK組成結構介紹

一、SDK ENV組成結構

整個SDK ENV組成結構如下圖所示:

d12bf0be-78aa-11ed-b116-dac502259ad0.png

doc:主要是先楫半導體官方開發的用戶指導手冊,包含 HPM6750EVK和HPM6750EVK mini的用戶指導手冊。

hpm_sdk: HPM SDK的核心軟件包。

toolchains:編譯工具鏈,主要為rv32imadc-ilp32d-x86_64-w64-mingw32

tools:主要第三方軟件和相應的處理腳本。

其他:SDK運行環境配置腳本和說明文件。

二、HPM SDK核心軟件包架構

SDK核心軟件包主要是支持完成應用軟件開發的各種組件,包含了驅動、板級支持文件、中間件、soc定義文件、實例、處理腳本、幫助文件等。如下圖所示

d1529bc4-78aa-11ed-b116-dac502259ad0.png

各個目錄的主要內容:

arch:risc-v架構相關的操作接口

boards:與開發板相關的硬件定義和接口,主要為HPM6300EVK、HPM6750 EVK和HPM6750 EVK mini相關的板卡硬件信息

cmake:與cmake和工程管理相關配置文件。

components:常用板載模塊驅動、處理邏輯和控制接口,包括camera、codec、debug_console、enet_phy、serial_nor、touch、usb等。

doc:SDK支持文檔和軟件API的支持文檔。

drivers:soc片上硬件模塊驅動、處理邏輯和控制接口。

middleware:常見算法庫、圖形庫、組件庫、RTOS等。

samples:各種應用例程。

script:與工程管理、編譯相關的處理腳本。

soc:soc片上資源寄存器定義。

utils:其他通用處理組件。

其他:處理腳步和說明文件。

新 board 添加適配

集成工具集sdk_env壓縮包解壓目錄下的start_cmd.cmd腳本可以啟動命令行環境sdk prompt, 可通過命令generate_project -list 查看當前支持的boards,可以查詢到當前支持的boards如下:

hpm6300evk

hpm6750evk

hpm6750evk2

hpm6750evkmini

d17c4e4c-78aa-11ed-b116-dac502259ad0.png

在目錄hpm_sdk/boards下添加新board目錄,例如名稱:hpm6750demo,如下:

d1930e0c-78aa-11ed-b116-dac502259ad0.png

參考官方board添加新board的適配code,代碼介紹如下:

注:建議按照官方代碼結構添加。

d1a9bd3c-78aa-11ed-b116-dac502259ad0.png

board.c:新board硬件初始化,包括clock/console/pmp/ahb等以新board實際硬件添加相關code。

pinmux.c:新board硬件pin腳復用選擇,以新board實際外設功能添加相關code(可使用HPM pinmux tool 泡泡龍工具自動生成)。

CMakeList.txt: cmake構建腳本文件,必須添加。

hpm6750evk.yaml:yaml配置文件, 名稱同新board名稱一致。文件中包含了board的相關信息,包括openocd 仿真器的相關信息。

*openocd目錄下同步添加board cfg文件:

d1c8c768-78aa-11ed-b116-dac502259ad0.png

board硬件初始化核心內容詳解:

注意:新board以實際功能添加、刪減、修改。


(1).flash配置信息:在區域.nor_cfg_option存放flash的配置信息,包括:flash類型、頻率、電壓、片選等。

注:當新board外掛的flash和官方的型號參數不一致時,注意修改此配置。

#if defined(FLASH_XIP) && FLASH_XIP__attribute__ ((section(".nor_cfg_option"))) const uint32_t option[4] = {0xfcf90001, 0x00000007, 0x0, 0x0};#endif

(2).UF2固件頭部的簽名信息:當固件是UF2類型,簽名存放在空間.uf2_signature區域。

if defined(FLASH_UF2) && FLASH_UF2ATTR_PLACE_AT(".uf2_signature") const uint32_t uf2_signature = BOARD_UF2_SIGNATURE;#endif

(3).終端初始化:串口終端初始化。

void board_init_console(void)

(4).時鐘初始化:系統時鐘及各個外設IP時鐘組選擇初始化。

void board_init_clock(void)

(5).外設初始化及外設時鐘源配置:各個外設的初始化,包括PINMUX及功能配置。

//外設初始化void board_init_uart(UART_Type *ptr) //UART 串口初始化void board_init_ahb(void) //AHB總線初始化void board_init_sdram_pins(void) //SDRAM PIN初始化void board_init_lcd(void) //LCD初始化void board_init_i2c(I2C_Type *ptr) //I2C初始化void board_init_cap_touch(void) //TOUCH觸摸屏初始化void board_init_gpio_pins(void) //GPIO PIN初始化void board_init_spi_pins(SPI_Type *ptr) //SPI PIN初始化void board_init_led_pins(void) //LED PIN初始化void board_init_cam_pins(void) //CAM PIN初始化void board_init_can(CAN_Type *ptr) //CAN 初始化void board_init_sd_pins(SDXC_Type *ptr) //SD PIN初始化void board_init_usb_pins(void) //USB PIN初始化void board_init_pmp(void) //PMP 初始化void board_init_adc12_pins(void) //ADC12 PIN初始化

void board_init_adc16_pins(void) //ADC16 PIN初始化hpm_stat_t board_init_enet_pins(ENET_Type *ptr) //ENEN PIN初始化//外設時鐘源配置uint32_t board_init_spi_clock(SPI_Type *ptr) //SPI CLOCK配置uint32_t board_init_uart_clock(UART_Type *ptr) //UART CLOCK配置uint32_t board_init_dram_clock(void) //DRAM CLOCK配置uint32_t board_init_lcd_clock(void) //LCD CLOCK 配置uint32_t board_init_cam_clock(CAM_Type *ptr) //CAM CLOCK配置uint32_t board_init_adc12_clock(ADC12_Type *ptr) //ADC12 CLOCK配置uint32_t board_init_dao_clock(void) //DAO CLOCK配置uint32_t board_init_pdm_clock(void) //PDM CLOCK配置uint32_t board_init_i2s_clock(I2S_Type *ptr) //I2S CLOCK 配置uint32_t board_init_adc16_clock(ADC16_Type *ptr) //ADC16 CLOCK配置uint32_t board_init_can_clock(CAN_Type *ptr) //CAN CLOCK配置uint32_t board_sd_configure_clock(SDXC_Type *ptr, uint32_t freq) //SD CLOCK配置hpm_stat_t board_init_enet_ptp_clock(ENET_Type *ptr) //ENET PTP CLOCK配置hpm_stat_t board_init_enet_rmii_reference_clock(ENET_Type *ptr, bool internal) //ENET RMII CLOCK配置hpm_stat_t board_init_enet_rgmii_clock_delay(ENET_Type *ptr) //ENET RGMII delay CLOCK配置

(6). 外部SDRAM初始化:外部SDRAM初始化。

注意:當初始數據有放到外部SDRAM,必須要定義宏:INIT_EXT_RAM_FOR_DATA。(此函數在啟動start.s中被調用)

#ifdef INIT_EXT_RAM_FOR_DATA/** this function will be called during startup to initialize external memory for data use*/void _init_ext_ram(void)

通過命令generate_project -list 查看當前支持的boards:

d1e1be12-78aa-11ed-b116-dac502259ad0.png

新 工 程 創 建

在目錄hpm_sdk/samples 下包含了官方的所有參考用例。參考官方用例來創建新的工程,新的工程路徑原則上是任意的,建議用戶放到hpm_sdk之外的目錄,方便用戶后續更新hpm_sdk而不影響用戶工程。例如創建兩個工程demo1,demo2,路徑和hpm_sdk在同一個目錄下:

d1fb07d2-78aa-11ed-b116-dac502259ad0.png

新工程組成介紹:

d21a880a-78aa-11ed-b116-dac502259ad0.png

CMakeList.txt:cmake構建腳本文件,必須添加。

Linkers當前工程使用的linker文件。當然也可以通過-t 使用官方的linker文件。

inc:工程頭文件。

src:工程源文件。

CMakeList.txt腳本文件內容介紹:

d237260e-78aa-11ed-b116-dac502259ad0.png

cmake_minimum_required(xxx):cmake最低版本要求,使用默認3.13即可。

set(xxx):設置要使用到的中間件、組件或linker文件。例如:set(CONFIG_LVGL 1)使能中間件LVGL(middleware/littlevgl)。set(CUSTOM_GCC_LINKER_FILE xxx)設置工程使用的linker文件。

set_compile_definitions(xxx):設置編譯器選項及宏定義。例如:set_compile_definitions(-DFLASH_XIP=1):宏定義 FLASH_XIP=1

注意:如果是FLASH_XIP的方式,一定要宏定義FLASH_XIP=1;如果初始數據使用了外部SDRAM,一定要宏定義INIT_EXT_RAM_FOR_DATA=1;或通過構建命令-t 指定。當-t指定工程類型,則當前cmakelist.txtset(CUSTOM_GCC_LINKER_FILE)指定的linker文件無效;

project(xxx): 工程名稱xxx。例如:project(demo1),demo1工程。

sdk_inc(xxx):工程頭文件路徑。

sdk_app_src(xxx):工程源文件添加,也可使用sdk_ses_src(xxx)或sdk_gcc_src(xxx)來指定為SES工程文件還是GCC工程文件。

generate_ses_project(): 構建為ses工程。

通過命令:generate_project -b hpm6750demo -f 構建生成SES工程。

注意:如果cmakelist.txt中指定了linker文件及工程類型,無需-t指定。

d25ed578-78aa-11ed-b116-dac502259ad0.png

雙擊工程xxx_build/segger_embedded_studio/xxx.emProject文件,打開SES工程編譯調試。

d26f79c8-78aa-11ed-b116-dac502259ad0.png

至此新建工程已完成。本文主要介紹了基于sdk_env_v0.14.0如何新建一個工程。詳細介紹了新BOARD適配驅動運行以及新工程建立的注意事項。HPM SDK基于CMAKE工具來為Segger構建工程,同時用戶也可通過添加修改cmake腳本來快速新建工程,為用戶省去了繁瑣的工程配置及編譯調試環境配置,大大提升了用戶的開發效率。(欲了解參考文獻,可點擊“閱讀原文”獲取)


本期的內容就分享到這兒,如果有其他感興趣的內容,歡迎隨時留言給小編,先楫芯上人會在接下來的分享中陸續為大家呈現~

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

    關注

    3

    文章

    1045

    瀏覽量

    46246
  • HPM
    HPM
    +關注

    關注

    1

    文章

    23

    瀏覽量

    7787
收藏 人收藏

    評論

    相關推薦

    轉行嵌入式,的奮斗之路

    作為一名曾經成功從其他領域轉行到嵌入式的工程師,想分享一下的個人經歷和一些意見,希望能給那些有同樣轉行想法的人一些參考。
    的頭像 發表于 12-05 09:18 ?342次閱讀
    轉行嵌入式,<b class='flag-5'>我</b>的奮斗之路

    戴上降噪耳機的,為什么還要捂住耳朵?

    降噪耳機,成為當代年輕人的隨身避難所。在喧囂的城市中,它們提供了一片寧靜,讓我們得以恢復能量。 如果讓選出本世紀最偉大的發明,一定會毫不猶豫地投它一票。人們有時并不需要太多,只需一個能切斷外界
    的頭像 發表于 11-23 15:39 ?303次閱讀
    戴上降噪耳機的<b class='flag-5'>我</b>,為什么還要捂住耳朵?

    使用官方SDK開發6450

    官網提供的SDK芯片類型沒有包含HPM6450,如何添加6450到SDK中有人知道么?
    發表于 10-24 14:51

    明明說的是25G信號,你卻讓看12.5G的損耗?

    那一天,問高速先生25G光模塊信號在主板上允許的損耗是多少,他們就告訴在12.5G要滿足大概7.3dB,當時就懵了,明明說的是25G啊,他跟我說12.5G干嘛!
    的頭像 發表于 10-23 09:08 ?1157次閱讀
    明明<b class='flag-5'>我</b>說的是25G信號,你卻讓<b class='flag-5'>我</b>看12.5G的損耗?

    SDK里面是否能添加HPM5300系列芯片支持包?

    SDK里面是否能添加HPM5300系列芯片支持包?只發現板級支持包。
    發表于 09-27 10:01

    如何將SDK安裝到IDE并使用所有SDK功能?

    功能?已經閱讀了 SDK 入門指南也更新了固件,但我仍然不知道如何安裝和使用 SDKSDK
    發表于 07-11 08:07

    HPM SDK 1.6.0 FreeRTOS LTS更改及適配指南

    √√RISCV中斷向量模式支持×√Ticklessmode支持×√DSP擴展支持×√二、FreeRTOS新特性適配2.1支持tickless模式HPM_SDK1.6.0中使
    的頭像 發表于 07-06 08:17 ?3999次閱讀
    <b class='flag-5'>HPM</b> <b class='flag-5'>SDK</b> 1.6.0 FreeRTOS LTS更改及適配<b class='flag-5'>指南</b>

    先楫半導體hpm_sdk v1.6.0上線

    HPM6E80HPM6E00系列MCU是一款高性能、高實時以太互聯,RISC-V雙核微控制器。HPM6E00系列提供多達4端口千兆以太交換模塊,支持TSN,并且
    的頭像 發表于 07-02 08:17 ?618次閱讀
    先楫半導體<b class='flag-5'>hpm_sdk</b> v1.6.0上線

    板子為什么測不了損耗

    關于損耗的測試需求真的是五花八門,今天我們就來一起簡單普及下為什么實物板可以測試阻抗而不能測損耗。
    的頭像 發表于 05-06 17:30 ?448次閱讀
    <b class='flag-5'>我</b>的<b class='flag-5'>板子</b>為什么測不了損耗

    聚沃科技SDK使用指南

    本文主要針對SDK如何重定義硬件接口和外設參數進行說明,方便讓大家快速靈活使用聚沃科技SDK
    的頭像 發表于 05-06 10:23 ?575次閱讀
    聚沃科技<b class='flag-5'>SDK</b>使用<b class='flag-5'>指南</b>

    與中國互聯網30年

    一、是中國互聯網最早的用戶之一(1995年) 1994年4月20日被正式認定為中國開通全球互聯網的紀念日,中國從此被國際上正式承認,成為第77個真正擁有全功能互聯網的國家。 1995年,
    的頭像 發表于 04-24 08:42 ?635次閱讀
    <b class='flag-5'>我</b>與中國互聯網30年

    先楫半導體 hpm_sdk v1.5.0 正式發布

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

    先楫半導體 hpm_sdk v1.5.0 正式發布

    先楫半導體 hpm_sdk v1.5.0 正式發布!功能升級更強大 版本更新概況 新支持的IDE IAR Embedded Workbench for RISC-V (測試版本3.20.1) 新增
    發表于 04-08 11:14

    先楫半導體hpm_sdk v1.5.0正式發布!

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

    談一下對雷軍的誤解

    一3月28日,小米汽車發布會3月28日晚,小米汽車發布會,看了大約有20分鐘。不是米粉,對雷軍不反感,也不怎么狂熱,所以并沒有看完發布會。發布會開完后,群里對雷軍的討論,開始鋪天蓋地的涌現
    的頭像 發表于 04-02 08:04 ?566次閱讀
    談一下<b class='flag-5'>我</b>對雷軍的誤解
    主站蜘蛛池模板: 日本激情网址 | 久久国产免费一区二区三区 | 少爷不要别揉了高H | 毛片免费在线播放 | 美女与男人对肌免费网站 | 青青草在线视频 | 成人免费视频无遮挡在线看 | 亚洲日韩KKK444KKK聚色 | 久久青青草原综合伊人 | 欧美一区二区视频97色伦 | 男女后进式猛烈xx00动态图片 | 激情办公室 | 伊人久久大香线蕉综合99 | 亚洲色欲国产免费视频 | 99视频久九热精品 | 久久黄视频| 男女啪啪久久精品亚洲A | 国产成人免费片在线观看 | 粉嫩无套白浆第一次jk | 一本道无码字幕在线看 | 国产人妻精品午夜福利免费不卡 | 久久国产精品萌白酱免费 | 伊人久久综合谁合综合久久 | 久久亚洲这里只有精品18 | 亚洲国产系列一区二区三区 | 中文字幕人成人乱码亚洲AV | 东京热一本无码av | 性色爽爱性色爽爱网站 | 强壮的公次次弄得我高潮韩国电影 | 国产精品久久久久一区二区三区 | 日本伦子欲 | 小泽玛丽av无码观看 | 亚洲三级黄色 | 秋霞av伦理片在线观看 | 国产亚洲精品福利视频 | 国内精品乱码卡一卡2卡三卡 | 亚洲精品国产品国语在线试看 | 好男人好资源在线观看免费视频 | 欧美肥胖女人bbwbbw视频 | 2021国产精品 | 国产精品亚洲第一区二区三区 |