当前位置: 首页 > 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…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...

LLMs 系列实操科普(1)

写在前面&#xff1a; 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容&#xff0c;原视频时长 ~130 分钟&#xff0c;以实操演示主流的一些 LLMs 的使用&#xff0c;由于涉及到实操&#xff0c;实际上并不适合以文字整理&#xff0c;但还是决定尽量整理一份笔…...

LabVIEW双光子成像系统技术

双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制&#xff0c;展现出显著的技术优势&#xff1a; 深层组织穿透能力&#xff1a;适用于活体组织深度成像 高分辨率观测性能&#xff1a;满足微观结构的精细研究需求 低光毒性特点&#xff1a;减少对样本的损伤…...

给网站添加live2d看板娘

给网站添加live2d看板娘 参考文献&#xff1a; stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下&#xff0c;文章也主…...