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

news2024/11/17 15:44:05

一、目的

        

        细心的朋友可能会发现官方提供了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

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

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


        HPM_SDK说明

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

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

         

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

        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的设计和脚本的编写上可见一斑) 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/711558.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vscode里vue文件内<template>标签报错

发现只要把文件名使用驼峰命名法,把Login.vue改为LoginView.vue就不报错了加个大写的View就没有了。 官方参考文档:vue/multi-word-component-names | eslint-plugin-vue

说说@EnableConfigurationProperties那点事

两者的对比 ConfigurationProperties 使用ConfigurationProperties的时候,把配置类的属性与yml配置文件绑定起来的时候,还需要加上Component注解才能绑定并注入IOC容器中,若不加上Component,则会无效。 EnableConfigurationPro…

Mybatis 入门及实践

Mybatis 入门及实践 文章目录 Mybatis 入门及实践前言一. 简介二. 入手案例2.1 前置准备2.1.1 Maven依赖2.1.2 sql准备2.1.3 Log4j2 配置1. Maven引入2. log4j2.xml 2.2 代码流程构建步骤2.2.1 Mybatis前置知识2.2.2 步骤流程2.2.3 代码实现 三. XML映射器前置代码3.1 select3.…

【网络编程】网络编程套接字(一)

文章目录 网络编程预备知识认识端口号理解源端口号和目的端口号认识TCP协议和UDP协议网络字节序sockaddr结构1.socket 常见API2.sockaddr结构 网络编程预备知识 认识端口号 端口号(port)是传输层协议的内容. 端口号是一个2字节16位的整数; 端口号用来标识一个进程, 告诉操作系…

Linux :LNMP(源码包安装)

Linux 虚拟机 VMware:安装centos7_鲍海超-GNUBHCkalitarro的博客-CSDN博客 物理机 linux:真机安装centos linux(突发事件:解决卡在安装界面){寻找镜像--u启制作--引导u盘--解决卡在安装界面--安装配置}_安装centos7卡…

Linux--文件/目录权限

看懂权限: 拥有者:文件属于谁 所属组:文件属于哪个组 other:不属于上面两种的任何一个,就是other 图示: 分析: ①第一列: d:目录 -:普通文件 p:管道文件 b:块设备 c:字符设备 l:链接…

数学建模概论

1、从现实对象到数学模型 我们常见的模型 玩具、照片......~实物模型水箱中的舰艇、风洞中的飞机......~物理模型地图、电路图、分子结构图......~符号模型 模型是为了一定目的,对客观事物的一部分进行简缩、抽象、提炼出来的原型的替代物,集中反映了原型…

【C++1】函数重载,类和对象,引用,string类,vector容器,类继承和多态,/socket

文章目录 1.函数重载:writetofile(),Ctrue和false,C0和非02.类和对象:vprintf2.1 构造函数:对成员变量初始化2.2 析构函数:一个类只有一个,不允许被重载 3.引用:C中&取地址&…

沁恒CH32V307VCT6最小系统板/开发板开源

沁恒CH32V307VCT6最小系统板,引出了所有IO口,一个Type-C连接到USB2.0全速OTG接口,一个Flash芯片 型号W25Q64 容量64Mbit 连接到SPI2接口,板上还有TL432电压基准1.25V(实测1.246V左右)可通过跳线连接到PC3的AD13,还有3.…

【c++】并行编程:cuda入门

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍cuda入门。 学其所用,用其所学。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更新不迷路&#x1f95e…

测试在 4090 上运行 vicuna-33b 进行推理

测试在 4090 上运行 vicuna-33b 进行推理 今天尝试在 4090 上运行 vicuna-33b 进行推理,使用的是 8bit 量化。 运行命令如下, python3 -m fastchat.serve.cli --model-path lmsys/vicuna-33b-v1.3 --load-8bit结论,使用 8bit 量化在 4090 上…

HTTP概述以及Tomcat概述

HTTP 概念:Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。特点: 基于TCP协议:面向连接、安全基于请求-响应模型的:一次请求对应一次响应HTTP协议是无状态的协议…

Java面试题3

[TOC]目录 1. spring事务 事务简介 事务在逻辑上是一组操作,要么执行,要不都不执行。主要是针对数据库而言的,比如说 MySQL。 为了保证事务是正确可靠的,在数据库进行写入或者更新操作时,就必须得表现出 ACID 的 4 …

nexus搭建maven私有仓库

Nexus 在企业开发中还是比较常用的私有仓库管理工具,一般把公司内部的Maven jar 包或npm包上传到仓库中,有效的对包文件进行管理。 Nexus 至少需要 2G 以上的内存 安装nexus之前首先安装配置好 JDK 环境 和 Maven环境 1、Linux环境安装openJDK 2、Centos…

机器学习——掌握决策树ID3算法的原理,通过增益熵实现手工推导的过程。

文章目录 决策树介绍优缺点ID3算法原理举例 决策树的构建1、特征选择(1)香农熵(2)信息增益 2、决策树的生成3、决策树的修剪 总结:参考文献 决策树 介绍 决策树(decision tree)是一种基本的分类与回归方法。ID3是其中…

模拟实现atoi

函数简介 atoi (表示 ascii to integer)是把字符串转换成整型数的一个函数,应用在计算机程序和办公软件中。int atoi(const char *nptr) 函数会扫描参数 nptr字符串,会跳过前面的空白字符(例如空格,tab缩进)等。如果 n…

socket 网络编程

socket UDP1、单播收发数据测试2、广播发送 TCP1、收发数据测试2、TCP 服务端 Socket是两个程序之间的双向通信链路。它是一种网络通信协议,用于不同计算机之间的进程间通信或同一计算机内部进程之间的通信。 import sockets socket.socket(AddressFamily, Type)…

初识【Matplotlib】

Matplotlib Matplotlib简单介绍Matploylib的分类学习Matploylib网站推荐Matplotlib用法Matplotlib中文字体显示Matplotlib的三层结构容器层图像层辅助显示层 Matplotlib简单介绍 Matplotlib是一个Python的数据可视化库,它提供了一种简单而有效的方式来创建各种类型…

02-独立按键控制LED状态

程序 #include <REGX52.H>void main() {while(1) {if(P3_1 0) //DOWN{P2_0 0xFE;}if(P3_1 1) //UP{P2_0 0XFF;}};}按键的抖动问题 软件实现解决-按键的抖动问题 通过延时解决 #include <REGX52.H>void Delay(unsigned int xms) {while(xms){unsigned cha…

【C语言】整型在内存中存储 赛场(来试试)

前言 &#x1f388;大家好&#xff0c;我是何小侠&#x1f388; &#x1f343;大家可以叫我小何或者小侠&#x1f343; &#x1f490;希望能通过写博客加深自己对于学习内容的理解&#x1f490; &#x1f338;也能帮助更多人理解和学习&#x1f338; 合抱之木&#xff0c;生于…