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

电子商务企业 网站前台建设 苏宁刷赞网站推广永久

电子商务企业 网站前台建设 苏宁,刷赞网站推广永久,网络营销策划的基本原则是什么,简易静态网站制作流程图目录 RTT(Real Time Transfer)简介 使用教程 常用API介绍 RTT缓冲大小修改 使用printf重定向 官方例程 RTT(Real Time Transfer)简介 平常调试代码中使用串口打印log,往往需要接出串口引脚,比较麻烦,并且串口打印速度较慢,串…

目录

 

RTT(Real Time Transfer)简介

使用教程

常用API介绍

RTT缓冲大小修改

使用printf重定向

官方例程


RTT(Real Time Transfer)简介

平常调试代码中使用串口打印log,往往需要接出串口引脚,比较麻烦,并且串口打印速度较慢,串口的中断可能会影响代码的执行效率。

SEGGER RTT支持使用J-link调试器输出来自目标微控制器的信息,也可以接收输入,并且在高速度交互的同时不会影响目标处理器的实时性,可以省掉平常打印日志用的串口。

SEGGER RTT可用于任何J-Link型号和任何支持后台内存访问的目标处理器,即Cortex-M和RX目标。

RTT支持两个方向、多个通道,上到主机,下到目标,它可以用于不同的目的,为用户提供尽可能多的自由。默认实现每个方向使用一个通道,用于可打印终端输入和输出。

使用J-Link RTT Viewer,可用于“虚拟”终端,允许打印到多个窗口(例如,一个用于标准输出,一个对于错误输出,一个用于调试输出)。

463331ac801040f2beebdaf76c02fc74.jpeg

SEGGER RTT的性能显著高于用于向主机PC输出数据的任何其他技术。平均一行文本可以在一微秒或更短的时间内输出。基本上相当于执行单个memcopy()的时间。在运行于168 MHz的STM32F407 Cortex-M4上进行了速度比较,如下图,其中不包括printf()调用的时间。

b7abf417c5844ed4bb6a9f16f0cde1c6.jpeg

将输出数据发送到主机的最大速度取决于目标缓冲区大小和目标接口速度。即使使用512字节的小目标缓冲区,RTT速度也可能高达1 MB/s,而常规J-Link型号的RTT速度可能高达0.5 MB/s。

5671225e95c54e03afc89bb4968e4668.jpeg

RTT上行信道的缓冲器可以相对较小。所需的最小缓冲区大小可以通过一毫秒内写入的数据量和一次写入操作中写入的最大值来近似得到。如果数据发送频率较低,则缓冲区应该有足够的空间用于一次写入发送的数据。如果数据发送频率更高,缓冲区大小应足以满足一毫秒内写入的最大数据量。下图显示了在168 MHz的SEGGER emPower评估板(NXP K66部件)下,使用J-Link PRO V4@36 MHz JTAG速度测量出的,每100 us和每1ms发送均匀分布的不同数据量时所需的最小缓冲区大小。

f320fb070fd246a5b948a46918077288.jpeg

b112e14cb301407f8d062d6b6224e9c9.jpeg

RTT实现代码为RAM中的控制块使用约500字节的ROM和24字节ID+24字节每个通道。每个通道都需要一些缓冲区内存。根据输入/输出的负载,上行通道的建议大小为1 kByte,下行通道的建议值为16至32 Byte。

a5e8b03eabfb4ae1be48e2355c454c5c.jpeg

使用教程

1.首先安装J-Link的软件驱动:SEGGER - The Embedded Experts - Downloads - J-Link / J-Trace

2.安装完成后,打开J-Link的安装目录(开始->SEGGR->J-Link RTT Viewer->右键打开文件所在位置->然后继续右键打开文件所在位置->此时就是安装目录了),

5b1a5b3080c0472e80c1f0ef1226bfd3.jpeg

找到如下路径SEGGER\JLink\Samples\RTT,解压路径里面的压缩包SEGGER_RTT_V770c.zip(不同的版本,V后面的数字可能不一样)。

6a8a3bd59e894397aeebeedf855f0c77.jpeg

3.将解压完的文件拷贝到代码工程目录中。

4. MDK工程下新建一个RTT的文件夹,把解压的文件复制到RTT目录下,将这些文件添加到MDK的工程中,不要忘了还有头文件目录。

195f8db111a54cc29c882dee745fc5e2.jpeg

5.工程加入文件后,在想要用到RTT的文件中包含#include "SEGGER_RTT.h",然后直接调用SEGGER_RTT_printf()就好了,例如SEGGER_RTT_printf(0,"Hello RTT~");这个和C语言的printf的格式差不多,就是前面加了一个端口0的参数,代码编辑后编译无错误后下载。

6.然后点击开始->SEGGR->J-Link RTT Viewer,打开J-Link RTT Viewer 选择好你的芯片型号后,点击确认。在很多设备上RTT地址是可以自动是被识别到的,对于不能自动识别的设备,需要自行输入RTT地址,RTT地址即为代码中结构体_SEGGER_RTT的地址。

2db0e3ba48da4b959a55a0d7f953e0d7.jpeg

7.然后就能看到我们打印的内容了。

ca3dc55153a0401da71953cbc3959e50.jpeg

常用API介绍

1.void SEGGER_RTT_Init (void); RTT初始化函数,应放于程序开始阶段。

2. int SEGGER_RTT_GetKey (void);从RTT终端获取一个按键字符。

    int c;c = SEGGER_RTT_GetKey();if (c == 'q') {exit();}

3.int SEGGER_RTT_HasKey (void);检测缓存区中是否还有字符

   if (SEGGER_RTT_HasKey()) {int c = SEGGER_RTT_GetKey();}

4. int SEGGER_RTT_printf (unsigned BufferIndex, const char * sFormat, …);格式化输出字符串,同时可以使用SEGGER_RTT_printf()来设置字体颜色还背景颜色。

48021837c886490a8945ceb6c313b694.jpeg

SEGGER_RTT_printf(0,RTT_CTRL_BG_WHITE”RTT TEST\r\n”);
SEGGER_RTT_printf(0,RTT_CTRL_TEXT_BLUE”RTT TEST\r\n”);

5.void SEGGER_RTT_SetTerminal(char TerminalId);设置虚拟终端ID, 下面示例中,SEGGER_RTT_WriteString中的0参数,是通道号,不是终端号。

//
// Send a string to terminal 1 which is used as error out.
//
SEGGER_RTT_SetTerminal(1); // Select terminal 1
SEGGER_RTT_WriteString(0, "ERROR: Buffer overflow");
SEGGER_RTT_SetTerminal(0); // Reset to standard terminal

6. int SEGGER_RTT_WaitKey (void);检测缓存区中是否还有字符。

   int c = 0;do {c = SEGGER_RTT_WaitKey();} while (c != 'c');

RTT缓冲大小修改

有时候我们的信息不能完全的打印出来,可能是因为缓冲不够,默认缓冲区大小事1K字节,如果不够可以改大一点。修改SEGGER_RTT_Conf.h文件中的#define BUFFER_SIZE_UP的值。

cb974a5c3d8a471fa6875e93d4f4d52a.jpeg

使用printf重定向

项目中使用printf的地方非常多,如果可以直接修改printf重定向到RTT组件,则会非常方便。使用的方法是直接使用RTT提供的API实现fputc。

#include <stdio.h>
int fputc(int ch, FILE *f)
{SEGGER_RTT_PutChar(0,ch);return ch;
}

官方例程

/*********************************************************************
* SEGGER Microcontroller GmbH *
* Solutions for real time microcontroller applications *
**********************************************************************
* *
* (c) 1995 - 2018 SEGGER Microcontroller GmbH *
* *
* www.segger.com Support: support@segger.com *
* *
**********************************************************************
----------------------------------------------------------------------
File : RTT.c
Purpose : Simple implementation for output via RTT.
It can be used with any IDE.
---------------------------- END-OF-HEADER ---------------------------
*/
#include "SEGGER_RTT.h"
static void _Delay(int period) {
int i = 100000*period;
do { ; } while (i--);
}
int main(void) {
int Cnt = 0;
SEGGER_RTT_WriteString(0, "Hello World from SEGGER!\n");
do {
SEGGER_RTT_printf(0, "%sCounter: %s%d\n",
RTT_CTRL_TEXT_BRIGHT_WHITE,
RTT_CTRL_TEXT_BRIGHT_GREEN,
Cnt);
if (Cnt > 100) {
SEGGER_RTT_TerminalOut(1, RTT_CTRL_TEXT_BRIGHT_RED"Counter overflow!");
Cnt = 0;
}
_Delay(100);
Cnt++;
} while (1);
return 0;
}
/*************************** End of file ****************************/

 

 

http://www.yidumall.com/news/65331.html

相关文章:

  • 建设网站的目的及功能定位主要包括哪些内容企业网站推广可以选择哪些方法
  • 上海网站建设 分类广告下载百度app
  • 网站建设需求说明书百度认证有什么用
  • 哪个网站可以自己做行程网站软文代写
  • 物流公司官方网站建设方案b站广告投放平台入口
  • wordpress微商城模板下载地址商丘seo博客
  • 网站防盗链怎么做免费seo软件
  • 院校网站建设自学seo能找到工作吗
  • wordpress 添加友情seo专员岗位要求
  • 温州市城市建设学校网站广州疫情今天最新消息
  • wordpress房产单页关键词优化费用
  • 企业网站 wordpress头条发布视频成功显示404
  • 做网站费用 优帮云百度识图在线
  • 合肥搭建网站外链代发公司
  • 织梦怎么做中英文网站切换贵阳百度推广电话
  • 账号交易网站数据库应该怎么做武汉网站建设
  • 利用云服务器做网站营销培训课程2022
  • 专做土特产的网站seo81
  • 电子商务网站建设前的分析在哪里可以发布自己的广告
  • 湘icp备 网站建设 机械 湖南网络广告推广
  • 建e室内设计网如何切换账号seo优化技术培训
  • 自有电脑做网站服务器新冠疫情最新消息
  • 河南如何建网站要什么条件搜索引擎营销的英文缩写
  • 动态网站用什么做的seo优化培训机构
  • 房地产设计网站网址收录入口
  • 东莞网站建设 少儿托管西安百度推广外包
  • 东莞证券官方网站上海优化seo公司
  • 做网站一般用什么字体查询网138网站域名
  • wordpress推广模板汕头seo优化公司
  • 什么是推广型网站网页模板设计