当前位置: 首页 > news >正文

C6678开发概述与Sys/bios基本使用

C6678开发概述

  • 参考
  • 开发环境
  • 标记及术语
  • 创建sys/bios自定义平台
  • 运行第一个sys/bios程序
  • Clock模块使用Demo

参考

TMS320C6678 Multicore Fixed and Floating-Point Digital Signal Processor Datasheet
TMS320C66x DSP CorePac User Guide 官方手册
创龙6678开发教程

开发环境

CCS5.5

标记及术语

☆ - 表示推荐操作
单镜像 - 每个核心运行相同的应用程序
多镜像 - 每个核心运行不同的应用程序

创建sys/bios自定义平台

Sys/bios使用时首先需要创建平台,然后基于平台创建软件工程。
a) File->New->Project…->RTSC:New RTST Platform
b) 配置平台名、路径、芯片
在这里插入图片描述

c) 配置存储器
在这里插入图片描述

运行第一个sys/bios程序

a) View->TI Resource Explorer
b) 选择Typical,并导入工程“Import the example project into CCS”
在这里插入图片描述
c) 配置工程,选择自定义的平台路径
在这里插入图片描述
d) 工程生成后可在以下位置修改工程配置
在这里插入图片描述
e) 用XGCONF 打开*.cfg工程配置文件(Open with > XGCONF)进行BIOS配置
f) 编译工程,首次编译报错:

>> Compilation failurememory range L1DSRAM
"./configPkg/linker.cmd", line 28: error #10080-D: length not specified formemory range L1PSRAM
error #10010: errors encountered during linking; "typical_TMS320C6678.out" not built
gmake: *** [typical_TMS320C6678.out] Error 1
gmake: Target `all' not remade because of errors.

解决方法,打开Debug/configPkg/linker.cmd文件,注释掉:L1DSRAM和L1PSRAM,如下:
在这里插入图片描述
g) 运行程序,结果如下,表明多任务成功运行
在这里插入图片描述

Clock模块使用Demo

来源:
View->TI Resource Explorer-> Clock Example
功能:
该模块用于定时启动某个任务/周期执行某个任务

//头文件:
include <ti/sysbios/knl/Clock.h>
//主要函数功能:
clkParams.period = 10;  //设置循环执行周期,单次执行设置为:0
clkParams.startFlag = TRUE;//设置循环执行为:TRUE/单次执行为:FALSE
clk2 = Clock_create(clk1Fxn, 1000, &clkParams, NULL);
//关键参数(定时启动的函数名称,任务启动起始时刻应>0,配置参数)
Clock_start(clk2);//启动时钟2
time = Clock_getTicks();//获取当前时刻值

官方Demo展示了2个任务:
a) clk0Fxn循环执行周期为5,启动时刻为5;
b) clk1Fxn单次执行,启动时刻为11,该任务调用BIOS_exit(0)结束sys/bios。
注意:
a) 经测试发现System_printf函数无法实时输出结果到环境,打印到下图位置,在sys/bios结束后才会将部分最近缓存打印出来,因此调试后续仍要用串口打印。
在这里插入图片描述
b) Clock_create函数中的任务启动起始时刻应>0,否则该任务无法运行
c) 创建多个任务时,需要把单次执行的任务放在最后,且写法如下,只将最后一个Clock_create返回值进行赋值

Clock_create(clk0Fxn, 5, &clkParams, NULL);
Clk2 = Clock_create(clk0Fxn1, 100, &clkParams, NULL);
Clock_start(clk2);

完成程序:

/**  ======== main.c ========*/#include <xdc/std.h>#include <xdc/runtime/Error.h>
#include <xdc/runtime/System.h>#include <ti/sysbios/BIOS.h>#include <ti/sysbios/knl/Task.h>#include <ti/sysbios/knl/Clock.h>unsigned int task_run_counnect = 0;/**  ======== taskFxn ========*/
Void taskFxn(UArg arg0)
{System_printf("enter taskFxn()\n");//Task_sleep(10);System_printf("exit taskFxn()\n");BIOS_exit(0);
}Void taskFxn1(UArg arg0)
{task_run_counnect++;//Task_sleep(10);System_printf("task taskFxn1 run counnect is %d\n",task_run_counnect);}Void taskFxn2(UArg arg0)
{task_run_counnect++;//Task_sleep(10);System_printf("task taskFxn2 run counnect is %d\n",task_run_counnect);}Void taskFxn3(UArg arg0)
{task_run_counnect++;//Task_sleep(10);System_printf("task taskFxn3 run counnect is %d\n",task_run_counnect);}/**  ======== main ========*/
Int main()
{ Task_Handle task;Error_Block eb;System_printf("enter main()\n");
/*Error_init(&eb);task = Task_create(taskFxn, NULL, &eb);if (task == NULL) {System_printf("Task_create() failed!\n");BIOS_exit(0);}
*/Clock_Handle clk2;Clock_Params clkParams;/* Create a periodic Clock Instance with period = 5 system time units */Clock_Params_init(&clkParams);clkParams.period = 30;clkParams.startFlag = TRUE;Clock_create(taskFxn1, 1, &clkParams, NULL);clkParams.period = 30;clkParams.startFlag = TRUE;Clock_create(taskFxn2, 10, &clkParams, NULL);clkParams.period = 30;clkParams.startFlag = TRUE;Clock_create(taskFxn3, 20, &clkParams, NULL);clkParams.period = 0;clkParams.startFlag = FALSE;clk2 = Clock_create(taskFxn, 100, &clkParams, NULL);Clock_start(clk2);BIOS_start();    /* does not return */return(0);
}

相关文章:

C6678开发概述与Sys/bios基本使用

C6678开发概述 参考开发环境标记及术语创建sys/bios自定义平台运行第一个sys/bios程序Clock模块使用Demo 参考 TMS320C6678 Multicore Fixed and Floating-Point Digital Signal Processor Datasheet TMS320C66x DSP CorePac User Guide 官方手册 创龙6678开发教程 开发环境 …...

python算法中的图算法之网络流算法(详解二)

目录 学习目标: 学习内容: 网络流算法 Ⅰ. 网络流模型 Ⅱ . Ford-Fulk...

企业电子招投标采购系统之项目说明和开发类型源码

项目说明 随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大&#xff0c;公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境&#xff0c;最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范&#xff0c;以及…...

ERTEC200P-2 PROFINET设备完全开发手册(8-1)

8.1 IRT通讯实验 这里我们使用APP3 IsoApp&#xff0c;修改源代码usrapp_cfg.h的宏为 #define EXAMPL_DEV_CONFIG_VERSION 3 使能App3&#xff0c;对应的主程序为“usriod_main_isoapp.c” 编译后下载运行。打开4.2建立的TIA项目&#xff0c;添加等时模式组织块&#xff0c…...

手撕Twitter推荐算法

Twitter近期开源了其推荐系统源码[1,2,3]&#xff0c;截止现在已经接近36k star。但网上公开的文章都是blog[1]直译&#xff0c;很拗口&#xff0c;因此特地开个系列系统分享下。系列涵盖&#xff1a; Twitter整体推荐系统架构&#xff1a;涵盖图数据挖掘、召回、精排、规则多…...

JAVA多态性测试的基本实验------JAVA入门基础教程

package duotai;public class Person {public void eat(){System.out.println("人吃饭");}public void Pdrink(){System.out.println("人喝水");} }package duotai;public class Man extends Person {public void eat(){System.out.println("男人吃饭…...

小说作者推荐: 妄鸦合集

《惊悚练习生》作品介绍 主人公叫弥赛亚,宗九的小说是《惊悚练习生》&#xff0c;它的作者是妄鸦倾心创作的一本现代耽美、娱乐圈、才女类型的小说&#xff0c;书中主要讲述了&#xff1a;作者&#xff1a;妄鸦 落魄魔术师宗九穿书了他穿到一本恐怖无限流选秀文里&#xff0c…...

MySQL-自带工具介绍

目录 &#x1f341;mysql &#x1f341;mysqladmin &#x1f990;博客主页&#xff1a;大虾好吃吗的博客 &#x1f990;MySQL专栏&#xff1a;MySQL专栏地址 MySQL数据库不仅提供了数据库的服务器端应用程序&#xff0c;同时还提供了大量的客户端工具程序&#xff0c;如mysql&a…...

12个你应该知道的Python库

12个你应该知道的Python库 1. python命令行argparse 更简单的begins2. colorama改善命令行窗口3. pyqtgraph 它提供了不同的功能选择&#xff0c;尤其适用于实时和交互式可视化4. 网页浏览器Pywebview5. psutil 提供了完整的获取系统信息的方法 或许cpu近5s的基本报告6. Watchd…...

【数据分析之道-NumPy(七)】numpy字符串函数

文章目录 专栏导读1、函数说明2、add()函数3、multiply()函数4、center()函数5、capitalize()函数6、title()函数7、lower()函数8、upper()函数9、split()函数10、splitlines()函数11、strip()函数12、join()函数 专栏导读 ✍ 作者简介&#xff1a;i阿极&#xff0c;CSDN Pytho…...

【Linux】Linux基本指令(1)

一.前言 从这篇文章开始&#xff0c;博主就开启了Linux学习之路了&#xff0c;本篇文章也是博主的第一篇Linux的文章&#xff0c;今后也会持续不断更新的。 二.理解文件 1.文件 文件文件数据文件属性&#xff08;所以一个建好的文件就算没有数据&#xff0c;也占用存储空间&am…...

更全面的对比GPT4和Claude对MLIR的掌握能力

本文构造了20个MLIR基础概念的问题以及使用OneFlow IR转换为Tosa IR的5个代码段来评测GPT4和Claude对于MLIR的掌握能力&#xff0c;我的结论是对于基础概念的理解Claude整体上和GPT4持平&#xff0c;而在阅读相关代码片段时Claude表现出了比GPT4更强一点的理解能力。 0x0. 前言…...

阿里ARouter 路由框架解析

一、简介 众所周知&#xff0c;在日常开发中&#xff0c;随着项目业务越来越复杂&#xff0c;项目中的代码量也越来越多&#xff0c;如果维护、扩展、解耦等成了一个非常头疼问题&#xff0c;随之孕育而生的诸如插件化、组件化、模块化等热门技术。 而其中组件化中一项的难点&…...

大型医院健康体检管理系统源码(PEIS)

一、体检管理系统&#xff08;PEIS&#xff09;概念 体检管理系统&#xff08;PEIS&#xff09;是以健康为中心的身体检查。一般医学家认为健康体检是指在身体尚未出现明显疾病时&#xff0c;对身体进行的全面检查。方便了解身体情况&#xff0c;筛查身体疾病。即应用体检手段对…...

java 获取时间的方法

Java的时间是通过字节码指令来控制的&#xff0c;所以 java程序的运行时间是通过字节码指令来控制的。但是由于 Java程序在运行时&#xff0c; JVM会产生一些状态&#xff0c;所以在执行 JVM指令时&#xff0c; JVM也会产生一些状态。 我们在执行 java程序时&#xff0c;主要是…...

Block原理(二)- 用白话说说底层源码,不扯代码

之前有一篇关于block的源码探究分析 Block原理&#xff08;一&#xff09;&#xff0c;时至今日&#xff0c;总觉的那篇文章说得不够流畅&#xff0c;今天打算从顶层设计的角度试着拆解下block的设计思想&#xff0c;拗脑的源码部分就不必再次触碰了&#xff0c;尽量保障这篇文…...

springboot整合knife4j接口文档成公共模块使用

theme: smartblue 之前项目中一直用的是swagger-ui进行接口文档的调用和使用&#xff0c;最近前端一直反馈页面不美观&#xff0c;调用凌乱&#xff0c;等一系列问题。基于这个问题我决定将其进行更改调整&#xff0c;上网搜索了一下发现knife4j是目前接口文档不错的一款插件。…...

软件测试需要学什么

软件测试近些年也是比较热门的行业&#xff0c;薪资高、入门门槛低&#xff0c;让很多开发人员想纷纷加入软件开发这个行业&#xff0c;想要成为这一岗位的一员&#xff0c;想要进入软件测试行业&#xff0c;他们需要学习什么呢&#xff1f; 软件测试需要学习的还挺多的&#…...

【蓝桥杯省赛真题17】python删除字符串 青少年组蓝桥杯python编程省赛真题解析

目录 python删除字符串 一、题目要求 1、编程实现 2、输入输出 二、解题思路...

C# LINQ 查询语句和方法的区别及使用

C# LINQ&#xff08;Language-Integrated Query&#xff09;是一种强类型、编译时的查询技术&#xff0c;它可以通过统一的语法对多种数据源进行查询和操作&#xff0c;包括对象、集合、数据库等。LINQ 提供了两种查询方式&#xff1a;查询语句和扩展方法。 查询语句&#xff…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明&#xff1a;server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...