论坛上看到的比较。\x0d\x0a这几天刚拿到STM32F4的评估板,STM32F4这次的卖点就是FPU和DSP指令集,关注了挺长时间,这次就想测试一下STM32F4的浮点性能,如果满足就升级自己飞控的架构。本来用STM32F103+28335双核架构,F28335当浮点处理器用,调试起来比较麻烦,所以一直想换了。\x0d\x0a\x0d\x0a测试代码就是用的我飞控的算法,全部使用浮点运算,包含姿态和位置两个7阶和9阶的卡尔曼滤波器,包含大量的矩阵运算以及部分导航算法和PID控制器等,还有部分IF和SWITCH包含跳转的判定语句,相比纯算法算是一个比较综合的运算。\x0d\x0a\x0d\x0a测试环境:\x0d\x0aF28335:CCS V3.3,使用TI优化的数学库,不开优化,程序在RAM里执行。\x0d\x0aSTM32F4:KEIL V4.7,使用ARM优化的数学库,不开优化。\x0d\x0a\x0d\x0a测试方法:\x0d\x0aF28335:在飞控算法入口设置断点,清零CCS的CPU计数器(profile->clock),然后STEP OVER,记录下CPU的计数\x0d\x0aSTM32F4:在飞控算法入口设置断点,记录下Register窗口内算states计数器,然后STEP OVER,记录下新的计数器数值,与之前的数值相减得到CPU计数\x0d\x0a\x0d\x0a测试结果:\x0d\x0aF28335:253359个CPU周期,除以150MHZ,大约是1.69ms\x0d\x0aSTM32F4:一共285964个周期,除以168MHZ,大约是1.7ms,比F28335略慢\x0d\x0a\x0d\x0a结论就是,对于包含相对较多跳转的综合浮点算法而言,STM32F4似乎并不慢多少。\x0d\x0a\x0d\x0a抛开架构因素,从纯浮点运算方面来看的话。STM32F4的FPU加减乘指令VADD.F32、VSUB.F32、VMUL.F32都是单周期指令,而除法VDIV.F32耗费14个周期。\x0d\x0a例如:a = a / b;产生的汇编为:\x0d\x0a0x08000220 ED900A00 VLDR s0,[r0,#0x00]\x0d\x0a\x0d\x0a0x08000224 4804 LDR r0,[pc,#16] ; @0x08000238\x0d\x0a\x0d\x0a0x08000226 EDD00A00 VLDR s1,[r0,#0x00]\x0d\x0a\x0d\x0a0x0800022A EE801A20 VDIV.F32 s2,s0,s1\x0d\x0a\x0d\x0a0x0800022E 4803 LDR r0,[pc,#12] ; @0x0800023C\x0d\x0a\x0d\x0a0x08000230 ED801A00 VSTR s2,[r0,#0x00]\x0d\x0a复制代码 F28335: F28335的FPU有加减乘法指令,都是双周期的,由于没有硬件除法指令,F28335这里是用软件模拟的浮点除法,汇编可以看到 LCR $div_f32.asm字样,需要19个时钟周期。\x0d\x0a例如:a = a * b,产生的汇编为:\x0d\x0a0087B2 E203 MOV32 *-SP[4], R0H\x0d\x0a\x0d\x0a0087B4 E2AF MOV32 R1H, *-SP[6], UNCF\x0d\x0a\x0d\x0a0087B6 E700 MPYF32 R0H, R1H, R0H\x0d\x0a\x0d\x0a0087B8 7700 NOP //需要让流水线等待FPU运算完毕,所以需要NOP \x0d\x0a\x0d\x0a0087B9 E203 MOV32 *-SP[4], R0H\x0d\x0a\x0d\x0a复制代码 除法:\x0d\x0a0087BD E203 MOV32 *-SP[4], R0H\x0d\x0a\x0d\x0a0087BF E2AF MOV32 R1H, *-SP[6], UNCF\x0d\x0a\x0d\x0a0087C1 7640 LCR $div_f32.asm:52:71$\x0d\x0a\x0d\x0a0087C3 E203 MOV32 *-SP[4], R0H\x0d\x0a复制代码 结论:\x0d\x0a可见单从浮点处理器来说,F28335是不如F4的FPU的。但是由于F28335是哈佛架构,有较长的流水线,可以在一个时钟周期里完成读取,运算和存储,所以程序连续运行的话,就比ARM快上许多许多,比如执行一次a = a + b只需要5个时钟周期,但是缺点就是一旦要跳转,就必须清空流水线,如果是\x0d\x0afor(i = 0;i。
mcu的话竞争激烈,很多厂家都是用自己的mcu,知识产权的成本相对比较低,arm面向mcu的cpu,IP费用也很低,dsp的话本来比较复杂,另外能提供dsp芯片的厂家比较少,ip的费用也比较高,价格就高。其实芯片的成本只跟硅片的大小直接相关,但是除了这个成本以外还有ip的知识产权费用,那个就会引起很大的价格变动。
AVR的PWM输出通道较少,剩下的就剩下DSP与STM32了,TMS320F28335可以输出多达18路而且还有6路高精度的PWM信号,你也可以去看看STM32的介绍!
1.打开我们安装的CCS工具,显示界面如下:
2.点击“Project”,下拉菜单中点击“Import CCS Projects...”,操作过程截图如下:
点击之后,出现如下截图的界面:
3.选择“Select search-directory”,然后点旁边的“Browse...”,找到要导入的工程目录,我们要导入的“SimpleBLEPeripheral”工程的CCS配置在下面所示路径中:
“C:\ti\simplelink\ble_cc26xx_2_01_00_44423\Projects\ble\SimpleBLEPeripheral\CC26xx\CCS”
选择完路径之后,将搜索出来的项目勾选上,并把“Copy projects into workspace”也勾选上,这样可以将项目导入到工作目录中。选择之后截图显示如下:
4.选择完之后,点击“Finish”,将相关项目导入到CCS中。导入之后显示如下:
到这一步,工程就导入完成了。
CCS工程编译
导入项目之后,我们来演示一下项目的编译,第一次导入项目的话,需要先编译下协议栈,然后才能编译应用,而且因为是第一次导入,所以最好“Rebuild Project”。
具体的操作步骤:
1.在“SimpleBLEPeripheralStack”项目名上点击鼠标右键,下拉菜单中选择点击“Rebuild Project”,协议栈的编译过程就开始了,编译完之后显示如下:
2.在“SimpleBLEPeripheral”项目名上点击鼠标右键,下拉菜单中选择点击“Rebuild Project”,应用部分的编译过程就开始了,编译完之后显示如下:
3.后面如果不再修改协议栈,就可以不去编译协议栈,只编译有改动的应用部分即可。
CCS工程下载及调试
编译完导入的工程之后,我们需要将编译的工程下载到开发板中运行调试。
操作步骤:
1.将协议栈工程设置为“Active”,方法很简单,就是在协议栈工程名上鼠标左键点击一下即可。设置完之后,点击“Run”,下拉菜单中点击“Debug”即可,点击之后就会显示Debug界面,协议栈部分不需要仿真,所以直接关闭就行。
2.将应用部分项目设置为“Active”,然后点击“Run”,下拉菜单中点击“Debug”即可,点击之后就会显示Debug界面,界面截图如下:
3.来看一下调试仿真界面的一些按键的功能,如下图所示:
圈中部分的几个按键的功能分别是:快速执行、暂停、终止仿真、单步运行(会跳入执行的函数内部)、单步运行(不跳入执行的函数内部)和回到上一步。
4.在CCS中复位设备,操作过程显示如下:
点击“Board Reset(automatic)”即可。
这样,编译、下载及调试过程我们也初步的了解了一下。
打开CSDN APP,看更多技术内容。
CCS8.3.0创建工程、编译及仿真_qq_36545292的博客_ccs怎么编...。
编译完成后点击veiw->Target Configuration 双击XXXX.ccxml在Basic选择Connection以及Board,在advanced界面添加.gel文件 我的gel文件在D:\ti\ccsv8\ccs_base\emulation\boards\evmc6678l \gel中,如果找不到就在ti的安装目录文件夹中用windo...。
CMake构建CCS工程与EMCV编译_小裘HUST的博客_cmake编译ccs。
因为虽然可以用CMake编译TI的CCS工程,但是调试还是离不开CCS。用CMake只是让程序编写的开发环境变得轻便了,可以在VS Code的界面下完成代码编写和编译,但最后Emulation还是得用CCS。另外,EMCV是OpenCV1.x移植到C6000 DSP上的计算机视觉库,...。
CCS安装编译器的方法
TI公司的编译器叫CGT:code generation tools 先下载所需版本的CGT 到TI官网找CGT 在www.ti.com.cn上搜索CGT,即可找到C2000-CGT:C2000代码生成工具-编译器 也可以直接到这里找: C2000-CGT IDE、配置、编译器或调试器 | TI.com.cn查看 TI C2000-CGT IDE、配置、编译器或调试器 的下载量、描述、特性和支持文档并开始设计。https://www.ti.com.cn/tool/cn/C2000-CG。
继续访问
TI CC2640R2f蓝牙BLE开发笔记(二)建立peripheral和central工程。
目录一、为什么要建立自己的工程:二、看看我们能够编写哪些文件:2.1、大致框架2.2、我们可以修改的文件: 本系列文章由江山(csdn名:补不补布)(github:jianggogogo)自己写成,当中用到引用时都已经标记出来,如果出现版权问题,请直接联系我修改。当然,技术在于分享,欢迎大家转载,不过请注明出处。最后,如果出现有错误的地方欢迎大家指正。 一、为什么要建立自己的工程: 我们从网上...。
继续访问
matlab 指定ccs编译器,在CCS5.5中导入CCS3.3工程——指定编译器和修改pr...。
首先,得安装CCS3.3,因为后面我们要用到CCSStudio_v3.3/C5500/cgttools下的文件。这其实就是3.3.2版本的编译器,因为之前在CCS5.5和CCS4.2实验时候导入这块板子的CCS3.3版例程的时候会提示警告,说导入的时候有些问题,要你去看project_lo...。
CCSv7使用指南连载1:导入工程及编译下载_电机与控制的博客。
所以,我们先不建立工程,直接通过导入现有工程的方式去演示CCS的使用。本文采用的硬件平台是F28069 Launchpad。 2 导入工程 点击Project->Import CCS Projects选择相应的工程目录即可,对应基于CCS3.3版本的工程可以通过ImportLegacy CCSv3.3 P...。
最新发布 CCS导入工程编译报错This project was created using a version of compiler that is not currently installed。
CCS导入工程编译报错
继续访问
BLE开发-CC2640开发笔记(1)
记录CC2640官方软件开发指南中的要点信息,本篇为开发入门部分。 1.CC2640程序开发需要用到的软件工具: BLE-stack:ble-stack-v2.2.1 for cc2640/cc2650 (需要默认路径安装) IDE和仿真器:IDE 可以使用IAR for ARM (推荐7.8以上版本) 或CCS(TI官方开发环境);仿真器支持XDS100。
继续访问
通过批处理编译CCS工程_yyzhb111的博客_ccs命令行编译。
工作中除了使用脚本(命令行)编译Keil工程,还需要使用CCS(TI-C2000) TI提供的CCS-IDE,会自动生成MakeFile,通过调用gmake编对MakeFile文件进行编译 以CCS6为例: 查看CCS安装目录(ti/ccsv6/utils/bin),可以看到gmake.exe ...。
CCS5.5编译问题
CCS5.5 编译报错
继续访问
CCSv7使用指南连载3:CCS文件及编译构建过程。
本系列文章主要目的是介绍CCS使用入门及在实际项目开发过程中有用的技巧及方法,第3篇介绍如何在同一个workspace下面管理工程以及相应CCS文件的介绍。
继续访问
【BLE-CC2640】CC2640之快速入门。
本文简介如何从CC2541快速入门至CC2640。
继续访问
CCS5导入工程时出错:Issues that may require your attention were encountered while importing the projects。
1.出错 CCS5.5.0导入工程(Import CCS Eclispse Project)时出错:Issues that may require your attention were encountered while importing the projects ,如下图: 2.原因 是由于文件夹名(例如f28335_Sci_Update_Flash_first)和文件夹中的工程名。
继续访问
CCS调试工程时,调试选项都不能用的排查方法。
使用ccs时, 点击debug,可以下载代码同时进行在线调试。 如果点击下载了,但是没有出现调试怎么处理呢? 如下图,调试的按钮都是灰的。 可以使用如下的排除方法: 1、(80%的可能性)首先要保证你的工程编译是通过的。没有错误才能生成可供调试的文件。 参照如下图片,先回到编辑界面(红色圈圈为ccs edit,右边的为 ccs edit,是两个不同的界面,可用菜单和功能有所不同)。 在编辑界面中,右键单击工程rebuild all,查看下problems窗口的输出,不能有错误。(如果界面没。
继续访问
CCS使用教程05:CCS8.0常用菜单。
目录 01 CCS的介绍、下载与安装 1 CCS的介绍 2 下载 3 安装 02 创建一个CCS工程 1 工作空间 2 创建一个新的CCS工程 3 编译与生成 03 工程导入 1 前面的话 2 导入工程 3 完整工程的结构 04 程序烧写与仿真 1 目标配置文件CCXML 2 连接仿真器 3 烧写程序(装载程序) 4 在线仿真 05 CCS8.0常用菜单 1 CCS编辑界面与调试界面 2 编译 3 搜索 4 打开窗口 ...。
继续访问
CCS-工程头文件与库文件的链接编译教程。
首先,明确C语言中头文件与库文件的区别。 简单来说:用户通过头文件找到库文件中头文件中有函数的申明,库文件实现函数的定义。 比如,printf函数。使用时应包括头文件stdio.h,打开头文件stdio.h你只能看到,printf这个函数的申明,却看不到printf具体是怎么实现的,而函数的实现在相应的C库中。而库文件一般是以二进制形式而不是C源文件形式提供给用户使用的。程序中包括了stdio.h这个头文件。链接器就能根据头件中的信息找到含有printf这个函数的实现的库文件,从而把这段代码(printf函。
继续访问
CCS3.3编译链接库文件与头文件。
编译的include文件目录 Compiler -》 Preprocessor-》include search path //include文件搜索路径 $(Proj_dir); //注释:工程所在文件同级目录下 ../../include;。
继续访问
ssh: connect to host slave2 port 22: Connection refused。
1.命令行输入: 更新安装包 $ sudo apt-get update 下载ssh $ sudo apt-get install ssh 完成。
继续访问
热门推荐 CCS如何打开已建好的工程。
CCS如何打开已建好的工程 文章转自百度文库 1、首先什么也不干,直接打开ccs软件,打开之后点击圆圈圈中的。 2、打开之后会出现这样一个对话框,然后点击红圈圈中的。 3、然后就在电脑中找到你要打开的工程的那个文件夹。 4、找到之后选中工程所在的文件夹然后点击确定。
继续访问
CCS以相对路径的方式添加文件到工程。
在CCS建立的工程中添加相对路径的文件。
继续访问
hutool 读取扩展名文件_使用Keil下载单独的Hex文件到单片机内。
前言初学STM32时,是通过串口1把Hex文件下载进STM32的,需要一个串口模块,而且还要设置BOOT0和BOOT1电平,然后通过FlyMcu软件进行下载,这也是一种不错的方法,这里我要介绍的是使用JLink调试器和Keil MDK-ARM来下载Hex文件,无需源代码,只需要一个调试器。所需要的工具和软件Hex文件,如Demo_STM32.hexKeil软件,v4或v5版本,如Keil v5.1...。
继续访问
CCS 如何打开一个工程 Code Composer Studio。
CCS软件是一个eclipse框架软件,但做单片机的多数都对此类软件是文盲,遇到问题多百度。 CCS软件可以新建一个工程,也可以通过import导入别人的工程。 通过import导入别人的工程有一个前提,就是你所使用的CCS版本必须要大于等于别人的工程版本。 最好的方式就是自己建立一个工程,然后把别人的文件拷贝进自己的工程,具体操作如下: 1 打开ccs新建一个工程。 2 在别人的工程里选择所有.c和.h文件。 3 粘贴到自己的工程。 详细截图: 1 打开ccs新建一个工程。 得到 2 在别人的工程.。
继续访问
【电力电子】搭建TMS320F28335的编译环境CCS的方法。
1、从哪下载CCS?2、从哪下载官方例程?3、如何快速拥有一个自己的project? 安装要点:两种方式任选其一(在线包、离线包)、两个条件必不可少(非中文路径、防火墙&杀毒软件关闭)。 3、如何快速拥有一个自己的project? 新建一个project,然后将例程中CMD,INCLUDE,SRC文件夹复制过来即可。具体如下:CCS软件安装说明和基本使用通常采用CCS来对TMS320F28335进行程序编写调试,本节简要介绍工程导入和程序固化的方法。建立CCS的工程有新建工程和导入工程两种方式。
继续访问
关于ccs软件的简单使用
CCS软件应用实验 使用CCS5.5版本的程序。 目的: (1)导入既有CCS工程,编译、运行和调试DSP应用程序; (2)创建应用型工程、源文件和目标配置文件; (3)掌握CCS的基本调试步骤和内存数据观察方法。 界面: 注意右边CCS Edit表示界面是代码编辑界面: 注意左边选择CCS Debug表示代码调试界面: 一、创建一个Hello world简单程序: 1)Project->New CCS Project 2)按下图选择 Proj...。
继续访问
CCS5.5导入已有工程
场景: 提示:这里简述项目相关背景: CCS5.5 问题描述 提示:这里描述项目中遇到的问题: 导入已有工程 解决方案: 提示:这里填写该问题的具体解决方案: 双击打开CCS5.5,设置空间 尽量选择不要在C盘。选择下图所示的选项,将已有文件导入 这样就可以导入文件了。 此外,工程里一般有4个文件夹,Code自建代码,含Alg算法类,APP模块化,Dat数据类,Drv DSP外设配置类。这四个文件夹一般含include和Source两个子文件,前者头文件,后者源代码。 DEBUG,系统自动生成。
继续访问
ccs工程编译
CC26
stm320f2833x与F281x系列的区别在于内核不同。
stm32f103:于中低端的32位ARM微控制器,该系列芯片是意法半导体(ST)公司出品,其内核是Cortex-M3。
stm32f407:又称STM32F4,由ST(意法半导体)开发的一种高性能微控制器。采用了90纳米的NVM工艺和ART。特点不同:stm32f103:按片内Flash的大小可分为三大类:小容量(16K和32K)、中容量(64K和128K)、大容量(256K、384K和512K)。
stm32f407:兼容于STM32F2系列产品,便于ST的用户扩展或升级产品,而保持硬件的兼容能力。三、集成功能不同1、stm32f103:集成定时器,CAN,ADC,SPI,I2C,USB,UART,等多种功能。