DSP-OMAPL-138 RTOS开发(1)——报错总结

news2024/11/27 23:31:33

1 git的作用

第一个问题,也不算错误:工程文件会有一个名称会有一个横着的箭头并且文件名前面都有问好,不算错误(算个发现),但是发现将git文件删去即可,如果没有,右击工程文件->选择TEAM->选择disconnect即可。
在这里插入图片描述

后来查了一下git文件的用处如下:
git文件可以实现项目共享、数据同步,可以同步至GitHub,因为.git文件的目的是为了实现代码同步,让该project可以上传GitHub
参考网址:git工具使用说明

2 CCS的平台和配置文件选取

由于项目移植到另外一台电脑,经常因为配置文件、头文件出错。这一part主要从各项目文件的主要作用、头文件的添加规范、配置文件的方法、RTSC和XDCtools的作用和用法、SYS\BIOS的作用和用法。

2.1 各个项目文件的主要作用

一个项目文件有许多不同后缀的文件,一直没有搞明白它们的具体含义:

  1. .c文件和.h文件
    源文件和头文件很常见,也是必备。库的.h文件也就是头文件,不一定和.c文件匹配出现,因为很多寄存器配置不需要只需要声明,除非配置寄存器函数。像一些集成的单板开发直接用寄存器函数即可,但是裸机开发许多函数.h需要自己include进去,.c文件也经常打包在.lib文件中进行include。

  2. .lib文件
    一个类型的.c文件打包封装成库。
    Rst.lib:C语言实时运行支持库,建立C运行环境,由_c_int00主要完成设置堆栈指针、初始化全局变量、调用main()
    Csl.lib:芯片支持库,实现片内外设的操作
    DSPLIB/IMGLIB:信号处理库,利用针对不同DSP的优化的函数进行数学运算
    通用的视/音LIB:例如263、264、jpeg、G.7XX、mp3、wmv。。。
    其他自己封装的LIB:例如bsl.lib(board source library),对DSP系统板上资源的操作。

  3. .cmd文件
    所有在DSP上运行的工程都需要cmd文件,这个文件负责定义memory region,并将用户的代码数据section映射到这些region中去。gel是系统定制的文件,主要描述整个系统的资源和分布状况,用于说明硬件平台的配置情况cmd则是软件开方人员根据实际的硬件资源情况进行个性配置的工作,进行程序与数据空间分配的操作,两者作用完全不相同的
    在这里插入图片描述
    上面这个双核的cmd文件

  4. .ccxml文件
    ccxml文件用于配制仿真器的。
    在这里插入图片描述

  5. .cfg文件
    只有使用了sys-biso的工程才需要cfg文件。

  6. .o文件和.out文件
    在源文件经过汇编器(Assembler)输出的OBJ Files(目标文件)需要通过Linker(链接器)才能得到OUT files,在链接阶段Linker根据.cmd里面存储区、Section分配以及lib来链接rst.lib、csl.lib、DSP/BIOS library跟对段的重定位
    所以.o文件可以理解成每个.c或.lib编译的目标文件,通过链接器生成最终的.out文件进行烧录。

  7. 其他文件
    .opt工程关于开发环境的参数文件。如工具条位置等信息;
    .aps (AppStudio File),资源辅助文件,二进制格式,一般不用去管他.
    .clw ClassWizard信息文件,实际上是INI文件的格式,有兴趣可以研究一下.有时候ClassWizard出问题,手工修改CLW文件可以解决.如果此文件不存在的话,每次用ClassWizard的时候绘提示你是否重建.
    .dsp (DeveloperStudio Project):项目文件,文本格式,不过不熟悉的话不要手工修改.DSW(DeveloperStudio
    Workspace)是工作区文件,其他特点和DSP差不多.
    .plg 是编译信息文件,编译时的error和warning信息文件(实际上是一个html文件),一般用处不大.在Tools->Options里面有个选项可以控制这个文件的生成.
    .hpj (Help Project)是生成帮助文件的工程,用microsfot Help Compiler可以处理.
    .mdp (Microsoft DevStudio
    Project)是旧版本的项目文件,如果要打开此文件的话,会提示你是否转换成新的DSP格式.
    .bsc 是用于浏览项目信息的,如果用Source Brower的话就必须有这个文件.如果不用这个功能的话,可以在Project Options里面去掉Generate Browse Info File,可以加快编译速度.
    .map 是执行文件的映像信息纪录文件,除非对系统底层非常熟悉,这个文件一般用不着.
    .pch (Pre-Compiled File)是预编译文件,可以加快编译速度,但是文件非常大.
    .pdb (Program Database)记录了程序有关的一些数据和调试信息,在调试的时候可能有用.
    .exp 只有在编译DLL的时候才会生成,记录了DLL文件中的一些信息.一般也没什么用.
    .ncb 无编译浏览文件(no compile browser)。当自动完成功能出问题时可以删除此文件。build后会自动生成。

2.2 头文件的添加规范

头文件是转移项目文件最容易报错的,要么那个电脑上没有头文件,要么路径不对。如何在include中疯狂寻找,之前就在“无法解析的外部符号”错误中,将include看了个遍。关键要利用相对路径进行include,并且一个工程文件要保持include,library,source,includes四个文件,分别放自己写的.h文件、.lib文件、.c文件,includes包含的是头路径。其中includes中的头路径最好全是相对路径:在这里插入图片描述

2.3 RTSC和XDCtools的作用和用法

RTSC开发相比于裸机开发,多了一个实时操作系统。
RTSC:Real-Time Software Component,实时软件组件。RTSC是一个基于C的编程模型,用于开发创建或实施嵌入式平台实时软件组件。
XDC:eXpress DSP Components 是一个为嵌入式实时系统提供可重用组件(称作:包)的标准。
XDCtools包含使用RTSC工具核运行时的组件,相当于工具。
下载SYS/BIOS组件时需要附带相应版本的XDCtools在这里插入图片描述

2.4 SYS\BIOS的作用和用法

SYS是从DSP改过来的,因为不止是DSP还要ARM等板子的实时操作系统(下载链接)
里面有实时操作系统RTSC经常用的API:在这里插入图片描述
操作流程网址

3 无法解析的外部符号

这个错误看见了很多说法,之前总是以为是当时的upp.LIB没有链接进去,就不停的修改link的include。后来发现,当前项目是CPP编译的,当时包含upp.h的时候一定要:

extern "C" {
	#include "upp.h"
	}

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

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

相关文章

用逆向思维学习技术

tip: 作为程序员一定学习编程之道,一定要对代码的编写有追求,不能实现就完事了。我们应该让自己写的代码更加优雅,即使这会费时费力。 推荐:体系化学习Java(Java面试专题) 前言 学习任何知识&#xff0c…

新Ubuntu怎么装Nidia驱动,cuda和cudnn

怎么安装nvidia驱动 软件更新->附加驱动 选择一个喜欢的 或者找推荐的 Ubuntu 20.04安装CUDA & CUDNN 手把手带你撸_ubuntu20.04 无图形化安装cuda_哈希Map的博客-CSDN博客 sudo ubuntu-drivers autoinstall 怎么安装cuda gcc 不用降级 (我没降级就安装好…

设计模式-02.经典设计原则-第二节[必读]

设计模式经典设计原则-第二节 依赖反转原则(DIP) 关于 SOLID 原则,我们已经学过单一职责、开闭、里式替换、接口隔离这四个原则。今天,我们再来学习最后一个原则:依赖反转原则。在前面,我们讲到&#xff…

C++ 深入理解多态及拓展

文章目录 1. 理解虚表1.1 虚表1.2 验证1.3 子类虚表1.4 相同类不同对象的虚表 2. 静态绑定和动态绑定2.1 静态绑定2.2 动态绑定 3. 多态的实现原理3.1 向上转型3.2 多继承3.3 原理 4. 拓展4.1 构造函数能不能是虚函数4.2 父类和子类的析构函数在底层的命名问题4.3 对象之间无法…

c++实现smtp发送邮件,支持ssl的465端口发送,支持附件、一次发送多人、抄送等

前言 c实现smtp发送邮件,支持ssl的465端口发送,支持附件、一次发送多人、抄送等。 这里只使用了openssl库(用来支持ssl的465端口),其他部分是原生c,支持在win/linux运行。 网上很多都是原始的支持25端口,明…

Fiddler抓包工具之高级工具栏中的重定向AutoResponder的用法

重定向AutoResponder的用法 关于Fiddler的AutoResponder重定向功能,主要是时进行会话的拦截,然后替换原始资源的功能。 它与手动修该reponse是一样的,只是更加方便了,可以创建相应的rules,适合批处理的重定向功能。 …

[SQL Server]数据库入门之多表查询

🎬 博客主页:博主链接 🎥 本文由 M malloc 原创,首发于 CSDN🙉 🎄 学习专栏推荐:LeetCode刷题集! 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指…

使用vant,实现密码输入框右边提供可视按钮(最简单)

在实际项目开发中,要实现密码输入框带密码可见切换按钮(右侧的眼睛),点眼睛可以显示或隐藏密码。 实现原理:动态绑定输入框类型 1.绑定密码框的type属性,在密码框使用插槽 ps:由于icon标签不…

美股怎么交易?有哪些美股交易基础知识?

美股市场相对成熟,投资回报率也更高一些,受到投资者喜爱。美股怎么交易?首先就需要了解美股交易基础知识。 美股交易基础知识一、美股交易市场 美股主要交易市场有NYSE纽约证券交易所、NASDAQ纳斯达克证券市场、AMEX美国证券交易所。 美股交…

GitOps 最佳实践(上)| 基于 Amazon EKS 构建 CI/CD 流水线

GitOps 是目前比较理想的方法来实现基于 Kuberentes 集群的持续部署。 了解了 GitOps 的概念以及 CI/CD 流水线的架构,接下来我们将通过以下四个模块逐步完成构建 CI/CD 流水线的最佳实践: 通过 IaC 部署云基础架构;在 Amazon EKS 集群上部…

2023年新课标I卷作文,5位人工智能考生(ChatGPT,文心一言,GPT4, ChatGLM-6b, ChatT5)来写作,看谁写得最好

大家好,我是微学AI,今天是2023年6月7日,一年一度的高考又来了,今年的高考作文题也新鲜出炉。今年是特殊的一年,有人说2023是AI的元年,这一年里有大语言模型的爆发,每天都有大模型的公布&#xf…

23年测试岗,测试工程师从初级到中高级进阶,测试晋升之路...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 调查显示&#xf…

【旋转摆正验证码】移动积分兑换影视会员活动旋转摆正验证码识别——识别解绝方法

移动积分兑换影视会员活动旋转验证码的0~200ms级小模型识别思路 具体讲解识别思路 移动积分兑换影视会员活动拖动旋转验证码被破解?当代流行的人机验证到底安不安全? 提示:以下是皆为学习交流之,如有侵权 ,望通知删帖…

年内BEV落地之战:华为遥遥领先,还是蔚小理登上王座?

作者 | 张祥威 编辑 | 德新 落地城市NOA,是今年最重磅的自动驾驶大战。而BEV感知,目前看来是 通往城市NOA的必经之路。 年内落地BEV,已经是国内自动驾驶头部玩家的共识。 其实,BEV是很早就提出的算法,又称鸟瞰图或上帝…

R730调整风扇转速

整整一个月没有写文章了,一是因为最近太忙,有点休息的时间就想躺着;二是买了Tesla P40显卡,想写个安装教程,结果快一个月了,安装还是失败。 大家如果谁懂在R730的ESXi上,用直通方式安装Tesla&am…

MMPretrain代码课

安装注意事项 训练时需要基于算法库源码进行开发,所以需要git clone mmpretrain仓库。如果只调用,则pip install 即可。 from mmpretrain import get_model, list_models,inference_model分别用于模型的获取、例举、推理 此时还没加载预训练权重 tor…

Redis-Cluster集群架构

Redis-Cluster 1.哨兵模式和redis-cluster模式的区别 哨兵模式的问题:1.只有一个master节点可以提供写的操作,qps 最多10w,对于高并发特别高的大型互联网系统 ​ 2.单节点不会内存太大,内存很大会给主节点造成压力,…

如何用数据资产管理,解锁数据新价值

数字经济和数字化转型的发展有什么共通点吗?这个问题的答案也很明显,数据就是数字经济数字化转型的基础,也是推动两者快速发展的核心要素。数字化时代,数据已经成为了个人、机构、企业乃至国家的重要战略资产,所以如何…

CnOpenData数字经济专利及引用被引用数据

一、数据简介 自人类社会进入信息时代以来,数字技术的快速发展和广泛应用衍生出数字经济。与农耕时代的农业经济、工业时代的工业经济大有不同,数字经济是一种新的经济、新的动能、新的业态,并引发了社会和经济的整体性深刻变革。现阶段&…

Nginx网络服务——页面优化与安全

Nginx网络服务——优化与防盗链 一、Nginx的网页优化1.Nginx的网页压缩2.Nginx的图片缓存3.Nginx的连接超时设置4.Nginx的并发设置 二、Nginx的页面安全1.查看Nginx版本的方式2.隐藏版本号 三、Nginx的日志分割1.编写日志分割脚本2. 执行脚本进行测试3. 将日志脚本添加至计划性…