【TI毫米波雷达笔记】IWR6843AOP的CCS工程模板创建(DSS)

news2024/11/26 3:11:10

【TI毫米波雷达笔记】IWR6843AOP的CCS工程模板创建(DSS)

如果还不会配置MSS 则看我的文章:

blog.csdn.net/weixin_53403301/article/details/132274755

大体上与MSS创建也差不多 SDK我用的3.5版本

DSS工程模板:

download.csdn.net/download/weixin_53403301/88215478

新建工程

在CCS里面新建工程 选择芯片 调试用设备和typical工程类型
Next之后要求选择Target和Platform,在页面下方处如下填写:
在这里插入图片描述

Target: ti.targets.elf.C674
Platform: ti.platforms.c6x:IWR68XX:false:600

Build-profile任意选择
建立好工程以后 在工程属性的general中也可以进行更改 只不过改到release版本以后需要重新配置各个设置
在这里插入图片描述
在这里插入图片描述

另外 在products中 点击add 添加mmwave sdk DSPLIB和sysconfig 如图所示

修改文件

这样工程就创建好了。在左侧的Project Explorer中,可以看到。接下来,我们需要对工程的属性进行调整,并覆盖一些工程自带的文件来满足开发需求。
在这里插入图片描述

其中 main.h 是我自己添加的
代码如下:

/*
 *  ======== main.c ========
 */

#include "main.h"



/*
 *  ======== taskFxn ========
 */
Void taskFxn(UArg a0, UArg a1)
{
    System_printf("enter taskFxn()\n");

    Task_sleep(10);

    System_printf("exit taskFxn()\n");

    System_flush(); /* force SysMin output to console */
}

/*
 *  ======== main ========
 */
Int main()
{ 
    Task_Params     taskParams;
    int32_t         errCode;
    SOC_Handle      socHandle;
    SOC_Cfg         socCfg;


    /* Initialize the SOC confiugration: */
    memset ((void *)&socCfg, 0, sizeof(SOC_Cfg));

    /* Populate the SOC configuration: */
    socCfg.clockCfg = SOC_SysClock_BYPASS_INIT;

    /* Initialize the SOC Module: This is done as soon as the application is started
     * to ensure that the MPU is correctly configured. */
    socHandle = SOC_init (&socCfg, &errCode);
    if (socHandle == NULL)
    {
        System_printf ("Error: SOC Module Initialization failed [Error code %d]\n", errCode);
        return -1;
    }

    /* Initialize the Task Parameters. */
    Task_Params_init(&taskParams);
    taskParams.stackSize = 4*1024;
    Task_create(taskFxn, &taskParams, NULL);

    /* Start BIOS */
    BIOS_start();
    return 0;
}

/*
 * main.h
 *
 *  Created on: 2023年8月14日
 *      Author: ZHOU
 */

#ifndef MAIN_H_
#define MAIN_H_

#include <stdint.h>
#include <stdlib.h>
#include <stddef.h>
#include <string.h>
#include <stdio.h>
#include <stdbool.h>
#include <math.h>

/* BIOS/XDC Include Files. */
/* SYS/BIOS所使用的头文件 */
#include <xdc/std.h>
#include <xdc/cfg/global.h>
#include <xdc/runtime/IHeap.h>
#include <xdc/runtime/System.h>
#include <xdc/runtime/Error.h>
#include <xdc/runtime/Memory.h>
#include <ti/sysbios/BIOS.h>
#include <ti/sysbios/knl/Task.h>
#include <ti/sysbios/knl/Event.h>
#include <ti/sysbios/knl/Semaphore.h>
#include <ti/sysbios/knl/Clock.h>
#include <ti/sysbios/heaps/HeapBuf.h>
#include <ti/sysbios/heaps/HeapMem.h>
#include <ti/sysbios/knl/Event.h>
#include <ti/sysbios/family/arm/v7a/Pmu.h>
#include <ti/sysbios/family/arm/v7r/vim/Hwi.h>
#include <ti/sysbios/utils/Load.h>
#include <ti/drivers/osal/MemoryP.h>

/* MMWave SDK Include Files: */
/* SDK头文件 */
#include <ti/common/sys_common.h>
#include <ti/common/MMWave_sdk_version.h>
#include <ti/drivers/soc/soc.h>
#include <ti/drivers/esm/esm.h>
#include <ti/drivers/crc/crc.h>
#include <ti/drivers/gpio/gpio.h>
#include <ti/drivers/mailbox/mailbox.h>
#include <ti/drivers/pinmux/pinmux.h>
#include <ti/drivers/adcbuf/ADCBuf.h>
#include <ti/control/MMWave/MMWave.h>
#include <ti/control/dpm/dpm.h>
#include <ti/drivers/osal/DebugP.h>
#include <ti/drivers/uart/UART.h>
#include <ti/utils/cli/cli.h>
#include <ti/utils/mathutils/mathutils.h>
#include <ti/utils/testlogger/logger.h>

/* Data path Include Files */
#include <ti/datapath/dpc/objectdetection/objdetdsp/objectdetection.h>  //dsp模式
//#include <ti/datapath/dpc/objectdetection/objdethwa/objectdetection.h>  //hwa模式

/* Demo Profiling Include Files */
#include <ti/utils/cycleprofiler/cycle_profiler.h>
#include <ti/alg/mmwavelib/mmwavelib.h>


#endif /* MAIN_H_ */

移植配置文件

  1. 从 <SDK安装路径>/packages/ti/platform/xwr68xx 下,拷贝c674x_linker.cmd到工程中

  2. 打开**<SDK安装路径>/packages/ti/drivers**下的任意一个驱动文件夹,这里以edma驱动为例,则打开<SDK安装路径>packages/ti/drivers/edma/test/xwr68xx,从中拷贝dss.cfg到工程中,此时工程如下
    在这里插入图片描述

修改工程属性

  1. Resource->Linked Resources,右侧点击New添加条目MMWAVE_SDK_DIR(名称可自定),路径定位到mmWave SDK安装路径,如下
    在这里插入图片描述
    同样的方法添加
    DSPLIB_C674x_DIR
    MATHLIB_C674x_DIR
    DSPLIB_C64Px_DIR
    指向各个安装目录
  2. 在XDC构建SYS/BIOS的过程中,需要让其将枚举的类型设置为int型,否则可能会导致诸如串口无法开启、控制台无法打印输出等问题,具体原理暂时不明。

Build->XDCtools->Advanced Options中,页面下方的Additional complier options,填入"–enum_type=int",如下
在这里插入图片描述
一定要注意–是两个英文的横杠(减号)
3. Build->C6000 Complier->Include Options,右侧上方的搜索路径列表,点击带有绿色加号的图标添加,添加目录 ${MMWAVE_SDK_DIR}/packages
同样的 添加另外三个目录:

${DSPLIB_C674x_DIR}/packages
${MATHLIB_C674x_DIR}/packages
${DSPLIB_C64Px_DIR}/packages

在这里插入图片描述
4. mmWave SDK提供的库在设计的时候考虑了整个系列雷达芯片的兼容性,因此库内有多套代码,通过宏定义来区分需要使用哪一段代码进行编译。为此,我们需要向编译器的预定义符号里添加一些用来表示当前目标芯片的宏。

Build->C6000 Complier->Prodefined Symbols,右侧上方添加以下符号(直接复制下面的内容,然后点击框内原先已有的宏,按Ctrl+V即可一次性直接粘贴进去)

SOC_XWR68XX
SUBSYS_DSS
PLATFORMES2
MMWAVE_L3RAM_NUM_BANK=6
MMWAVE_SHMEM_TCMA_NUM_BANK=0
MMWAVE_SHMEM_TCMB_NUM_BANK=0
MMWAVE_SHMEM_BANK_SIZE=0x20000
DOWNLOAD_FROM_CCS
DebugP_ASSERT_ENABLED
_LITTLE_ENDIAN
OBJDET_NO_RANGE
AOP

在这里插入图片描述
其中 如果需要指定L3代码和MSS用的大小 则配置:

MMWAVE_L3_CODEMEM_SIZE=0x100
MMWAVE_MSSUSED_L3RAM_SIZE=0x90000
  1. 此处需要更改Runtime Model Options内的选项,Build->C6000 Complier->Advanced Options,如图
    在这里插入图片描述
  2. 大部分驱动的函数都封装成库提供给用户了,所以需要将库文件添加到连接器的搜索路径中,否则会出现未解析符号的问题。

Build->C6000 Linker->File Search Path,上方添加如下内容(一样可以直接复制过去)

dsplib.ae64P
mathlib.ae674
libmathutils.ae674
libsoc_xwr68xx.ae674
libosal_xwr68xx.ae674
libcrc_xwr68xx.ae674
libmailbox_xwr68xx.ae674
libmmwavelink_xwr68xx.ae674
libmmwave_xwr68xx.ae674
libedma_xwr68xx.ae674
libadcbuf_xwr68xx.ae674
libcbuff_xwr68xx.ae674
libhsiheader_xwr68xx.ae674
libdpm_xwr68xx.ae674
libdpedma_hwa_xwr68xx.ae674
libmmwavealg_xwr68xx.ae674
rts6740_elf.lib

下方添加如下内容,其中MMWAVE_SDK_DIR和另外三个DIR变量和前面设定Linked Resources时添加的变量名保持一致即可。

${MMWAVE_SDK_DIR}/packages/ti/control/mmwave/lib
${MMWAVE_SDK_DIR}/packages/ti/control/mmwavelink/lib
${MMWAVE_SDK_DIR}/packages/ti/control/dpm/lib
${MMWAVE_SDK_DIR}/packages/ti/drivers/adcbuf/lib
${MMWAVE_SDK_DIR}/packages/ti/drivers/crc/lib
${MMWAVE_SDK_DIR}/packages/ti/drivers/dma/lib
${MMWAVE_SDK_DIR}/packages/ti/drivers/edma/lib
${MMWAVE_SDK_DIR}/packages/ti/drivers/esm/lib
${MMWAVE_SDK_DIR}/packages/ti/drivers/gpio/lib
${MMWAVE_SDK_DIR}/packages/ti/drivers/hwa/lib
${MMWAVE_SDK_DIR}/packages/ti/drivers/mailbox/lib
${MMWAVE_SDK_DIR}/packages/ti/drivers/osal/lib
${MMWAVE_SDK_DIR}/packages/ti/drivers/pinmux/lib
${MMWAVE_SDK_DIR}/packages/ti/drivers/soc/lib
${MMWAVE_SDK_DIR}/packages/ti/drivers/uart/lib
${MMWAVE_SDK_DIR}/packages/ti/utils/cli/lib
${MMWAVE_SDK_DIR}/packages/ti/utils/mathutils/lib
${MMWAVE_SDK_DIR}/packages/ti/datapath/dpu/rangeproc/lib
${MMWAVE_SDK_DIR}/packages/ti/datapath/dpedma/lib
${MMWAVE_SDK_DIR}/packages/ti/drivers/cbuff/lib
${MMWAVE_SDK_DIR}/packages/ti/utils/hsiheader/lib
${MMWAVE_SDK_DIR}/packages/ti/drivers/qspi/lib
${MMWAVE_SDK_DIR}/packages/ti/drivers/qspiflash/lib
${MMWAVE_SDK_DIR}/packages/ti/utils/libsleep/lib
${MMWAVE_SDK_DIR}/packages/ti/utils/testlogger/lib
${MMWAVE_SDK_DIR}/packages/ti/alg/mmwavelib/lib
${DSPLIB_C64Px_DIR}/packages/ti/dsplib/lib
${MATHLIB_C674x_DIR}/packages/ti/mathlib/lib
${DSPLIB_C674x_DIR}/packages/ti/dsplib/lib

在这里插入图片描述
7. 同样地,在此处也需要填入一些预定义的符号,比如c674x_linker.cmd文件中用到的几个宏的大小。

Build->C6000 Linker->Advanced Options->Command File PreProcess,上方添加

MMWAVE_L3RAM_NUM_BANK=6
MMWAVE_SHMEM_TCMA_NUM_BANK=0
MMWAVE_SHMEM_TCMB_NUM_BANK=0
MMWAVE_SHMEM_BANK_SIZE=0x20000

其中 如果需要指定L3代码和MSS用的大小 则配置:

MMWAVE_L3_CODEMEM_SIZE=0x100
MMWAVE_MSSUSED_L3RAM_SIZE=0x90000
  1. 点击右下角Apply and Close,再对工程重新编译,可以看到所有错误都消失了。但仍然有一个警告,提示缺少systemHeap段定义。因此打开r4f_linker.cmd文件,手动在SECTIONS内添加:
systemHeap : {} >> L2SRAM_UMAP0 | L2SRAM_UMAP1

在这里插入图片描述

之后再编译就不会出现问题了。

编译

在这里插入图片描述

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

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

相关文章

HTML和JavaScript实现一个简单的计算器

使用HTML和JavaScript实现一个简单的计算器。 一、绘制键盘 <!DOCTYPE html> <html> <head><title>Simple Calculator</title><style>.calculator {display: grid;grid-template-columns: repeat(4, 1fr);grid-gap: 5px;padding: 10px;}.…

产品进行逻辑梳理的三个重点

我们在进行产品方案设计时&#xff0c;需要进行逻辑梳理&#xff0c;这样才能保障产品方案的严谨性&#xff0c;降低后期返工几率。如果我们在接到需求时&#xff0c;直接开始画原型&#xff0c;没有经过逻辑梳理&#xff0c;往往容易造成产品方案纰漏丛生&#xff0c;直接影响…

NFTScan | 08.07~08.13 NFT 市场热点汇总

欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。周期&#xff1a;2023.08.07~ 2023.08.13 NFT Hot News 01/Magic Eden 已上线 BRC-20 小数铭文与买卖 8 月 7 日&#xff0c;NFT 市场 Magic Eden 发推称&#xff0c;BRC-20 小数铭文与买卖现已上线&…

CentOS8安装Git

错误1. 执行yum命令报错 【错误&#xff1a;Invalid configuration value: failovermethodpriority in /etc/yum.repos.d/CentOS-epel.repo; 配置&#xff1a;ID 为 "failovermethod" 的 OptionBinding 不存在】 1.cd /etc/yum.repos.d 2.vim CentOS-epel.repo //…

计算机竞赛 opencv 图像识别 指纹识别 - python

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于机器视觉的指纹识别系统 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;4分 该项目较为新颖&#xff0c;适…

Python实现SSA智能麻雀搜索算法优化BP神经网络回归模型(BP神经网络回归算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 麻雀搜索算法(Sparrow Search Algorithm, SSA)是一种新型的群智能优化算法&#xff0c;在2020年提出&a…

布隆过滤器原理及应用

使用场景 适用于数据命中不高、 数据相对固定、 实时性低&#xff08;通常是数据集较大&#xff09; 的应用场景。比如&#xff1a; 解决缓存穿透&#xff1b;爬虫时记录已爬取的网页&#xff1b;记录黑名单&#xff1b; 原理 数据结构是一个bit数组&#xff0c;布隆过滤器…

Rx.NET in Action 中文介绍 前言及序言

Rx 处理器目录 (Catalog of Rx operators) 目标可选方式Rx 处理器(Operator)创建 Observable Creating Observables直接创建 By explicit logicCreate Defer根据范围创建 By specificationRangeRepeatGenerateTimerInterval Return使用预设 Predefined primitivesThrow …

【vue】alert弹窗太死板?试试这种方法(附代码)

alert(response.data.message); 新方法&#xff1a; this.$message.error(请检查您输入的的用户名和密码&#xff01;);

等保案例 2

用户简介 青海省司法厅是贯彻执行国际司法行政的方针、政策&#xff0c;拟定青海市司法行政工作的政策、法规的重要组织机构。青海省司法厅根据国家部署及业务需要先后简历了司法专网及行政办公网&#xff0c;目前两套网络之间完全物理隔离。但青海省司法厅现有网络设备单一&a…

学会这个小技巧,让你的Jenkins更好用

♥ 前 言 在使用 Jenkins 时&#xff0c;我们经常遇到这样的需求&#xff1a;在 Jenkins 构建的时候拉取指定分支的代码或者指定 tag 的代码&#xff0c;而 Jenkins 默认没有带这样的参数化选择功能&#xff0c;我们可以通过 Git Parameter 插件来实现。 一、准备&#xff…

公文管理系统SSM+Activiti文档文件日志java jsp源代码

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 公文管理系统SSMActiviti 系统有1权限&#xff1a;管…

达摩院FunASR实时语音听写服务软件包发布

7月初&#xff0c;FunASR社区发布了离线文件转写软件包&#xff0c;可以高精度、高效率、高并发的支持长音频离线文件转写&#xff0c;吸引了众开发者参与体验。应开发者需求&#xff0c;FunASR社区再次推出实时语音听写服务软件包&#xff0c;支持实时地进行语音转文字&#x…

如何进行网络活动监控

组织的 IT 基础架构中的每个网络设备上都发生了大量活动&#xff0c;例如数据包传输、来自网络协议的消息、设备状态事件等。网络活动成为在检测到问题时识别网络瓶颈的面包屑&#xff0c;因此即使是最微小的网络活动也应受到监控&#xff0c;因为它直接影响整体网络性能、运行…

Python web实战之Django的AJAX支持详解

关键词&#xff1a;Web开发、Django、AJAX、前端交互、动态网页 今天和大家分享Django的AJAX支持。AJAX可实现在网页上动态加载内容、无刷新更新数据的需求。 1. AJAX简介 AJAX&#xff08;Asynchronous JavaScript and XML&#xff09;是一种在网页上实现异步通信的技术。通过…

DHCPv6之GitHub项目Android侧验证

一、adb里面安装busybox 1、下载busybox 下载网址&#xff1a;Index of /downloads/binaries/1.21.1 (busybox.net)&#xff0c;目前最新是1.21.1版本 根据项目选择busybox-armv7l &#xff0c;右键另存为下载到本地目录&#xff0c;下载后去掉文件的后缀名&#xff0c;变成如…

MetaGPT-软件开发领域的重大变革

在不断发展的人工智能世界中&#xff0c;一个术语最近引起了人们的关注&#xff1a;MetaGPT。随着数字领域的竞争变得更加激烈&#xff0c;了解和利用 MetaGPT 的功能可以改变企业、开发人员和人工智能爱好者的游戏规则。本文深入探讨了 MetaGPT 的世界、其重要性及其对人工智能…

云服务监控解决方案

云监控是追踪、警报和报告性能指标的过程&#xff0c;目的是全面了解云服务和资源。应用程序管理器具有分析混合云和多云基础架构以及托管在其上的应用程序的性能所需的所有必要功能&#xff0c;它使管理员能够主动发现云服务的性能瓶颈&#xff0c;并在它们影响最终用户之前快…

优思学院|六西格玛黑带在公司中的人数应有多少?

6西格玛 (Six Sigma) 是一商业管理之战略模式。这套模式最初用于1986年&#xff0c;由摩托罗拉所创立&#xff0c;后来&#xff0c;在通用电气的CEO Jack Welch的大力推广之下&#xff0c;在1995年成为通用电气的核心管理思想。六西格玛现在被广泛应用于很多行业中&#xff0c;…

OneNote of win10登录个人账户,输入账号后,页面一直在转圈圈【已解决】

OneNote of win10登录个人账户&#xff0c;输入账号后&#xff0c;页面一直在转圈圈多种解决方式 1.win10 WLAN限制 在WLAN中找到能够使用WLAN的应用&#xff0c;把OneNote of win10打开。 2.关闭代理 ①关闭 VP* ②到 Windows 10 的设置里“网络和 Internet” →代理→把这…