HPM6750系列--第六篇 创建自己的工程

一、目的

        

        细心的朋友可能会发现官方提供了HPM-Sdk仓库,示例代码都是作为一个文件夹的形式放在此仓库下,我们之前都是直接拷贝里面的工程进行演示。

        下面我们就具体来分析一下hello_world工程的文件组成,这样我们就可以创建自己的工程。

二、介绍

        现在让我们仔细研究一下hello_world工程

        CMakeLists.txt是cmake构建脚本文件

        cmake_minimum_required要求cmake的版本至少为3.13

        find_package用于查找hpm-sdk(从环境变量HPM_SDK_BASE)

        project定义工程名称

        sdk_app_src指定工程源码文件

        generate_ses_project生成segger工程文件


        hello_world.c源码文件

        board.h板级头文件

        main函数中首先调用board_init进行板级初始化,然后初始化GPIO引脚,创建一个300ms的定时器用于周期性开关LED

        从整体上来整个工程干净整洁(给先楫的工程师点赞)。

        我们从工程构建日志中跟踪一下构建过程

        

        先从hello_world工程中读取cmake文件,然后调用hpm-sdk目录下 hpm_Sdk/cmake/hpm-sdk-config.cmake,在调用hpm_Sdk/cmake/application.cmake。

 

        关于示例工程的介绍到此为止。


        HPM_SDK说明

        下面我们进入到HPM-SDK中进一步学习下

        1、目录结构
目录结构(官方截图)

         

        我们针对sdk目录下的CMakeLists.txt进行说明

                hpm_Sdk/cmake/hpm-sdk-config.cmake

        

                先检查HPM_SDK_BASE环境变量是否定义,未定义则报错,定义了则声明HPM_SDK_BASE变量,然后包含hpm_Sdk/cmake/application.cmake文件

                hpm_Sdk/cmake/application.cmake

 

        检查GNURISCV_TOOLCHAIN_PATH环境变量是否定义,未定义则报错;定义APP_SRC_DIR/APP_BIN_DIR/APP_NAME/APP_ELF_NAME/APP_BIN_NAME/APP_MAP_NAME/APP_ASM_NAME变量;

 

 

        1、设置堆栈、flash、sdram大小信息

        获取flash、sdram的大小并设置_flash_size、_extram_size这个两个链接器变量;

        根据变量HEAP_SIZE/STACK_SIZE设置堆/栈大小 

           2、设置编译类型

                可以设置的编译目标类型包括:flash_xip、flash_sdram_xip、flash_uf2、flash_sdram_uf2等;通过这个关键字定义不同的宏变量。

        3、添加系统头文件路径以及添加子模块(子目录)

        4、指定链接脚本

        

        5、根据不同的工具链设置链接库
         
        6、双核相关的配置
         

       

        以上就是SDK的基本情况(先楫内部的人综合能力很强啊,从SDK的设计和脚本的编写上可见一斑) 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值