如何快速创建用户自定义Board和App工程
各位关注先楫的小伙伴们,HPM_SDK v1.7.0正式发布了,在HPM_ENV中新增了user_template
文件夹,以方便用户快速创建自定义的Board和App工程。
概述
user_template
是用户模板工程,用户可将该文件夹复制到用户自定义的工作目录(workspace)中,基于此模板进行开发。
本模板主要牵涉到的用户自定义的文件有:
- 用户板级文件Board
- 用户应用程序App
- 用户链接脚本Linker
用户板级文件Board
在user_board
文件夹下,有一个yaml
文件和一个cfg
文件,这两个文件的名称必须要跟文件夹名称一致,这样start_gui才能识别出该文件夹为板级文件夹。
其中,yaml
文件是用户板级配置文件,用于配置soc名称、openocd脚本等。cfg
文件是openocd的板级配置文件,指定板载Flash的参数、调试器reset-init事件处理、调试器gdb-attach事件处理等。
通常,用户可将hpm_sdk/boards/hpm_xxxx_evk目录中文件复制到user_board文件夹下,将hpm_sdk/boards/openocd/boards目录evk对应的cfg
文件复制到user_board文件夹下,然后在其基础上根据自身板子的配置进行修改。
- 复制过来后,请修改
yaml
和cfg
文件名称,使其与文件夹名称保持一致。
用户应用程序App
在user_app
文件夹下,用户可组织自己的应用程序,例如main函数等。
添加的.c文件和.h文件时,请在CMakeList.txt
中使用sdk_app_src
添加.c文件,使用sdk_app_inc
添加.h文件的路径。
若使用到middleware
、components
等,请参考hpm_sdk对应sample中的CMakeList.txt
,然后在依葫芦画瓢在用户的CMakeList.txt
中添加相关指令。
- 修改
CMakeList.txt
后,需要重新生成工程并编译,才能生效。
用户链接脚本Linker
在user_app
文件夹下,有该应用程序的linker
文件,用户可根据自身的需求自定义该文件。
通常,用户可将hpm_sdk/soc/xxxx/xxxx/toolchains中的gcc
/iar
/segger
文件夹中的linker文件复制到user_app/linkers中,在其基础上进行修改。
- 复制过来后,
gcc
/iar
/segger
三个文件下的linker文件名称保持一致,仅后缀不一样。
user_template
模板中的linker文件是从hpm6750evk2的flash_xip liner文件复制过来的,用户可根据自身板子的配置情况将其替换或修改。
START_GUI的使用
上述的文件组织完毕后,可使用start_gui生成自己的project工程。
- Board Path:指定顶层的
user_template
文件夹,它将自动搜索该文件夹下的板级文件。 - Application Path:指定顶层的
user_template
文件夹,它将自动搜索该文件夹下的应用程序。 - User GCC Liner File:指定用户自定义的gcc linker文件。生成project后,gcc工具链将使用gcc文件夹下的linker,iar工具链将使用iar文件夹下的linker,segger工具链将使用segger文件夹下的linker。
- start_gui的
Build Type
需要配合linker文件正确指定。 例如,当linker文件使用到Flash且没有SDRAM时,start_gui的Build Type
需要指定为flash_xip
;当linker文件使用到Flash且有SDRAM时,start_gui的Build Type
需要指定为flash_sdram_xip
。
- start_gui的
- 配置完毕后,点击
Generate
,即可生成工程。
写的简单明了,条理清晰!