首页 >消费 > > 正文

如何用先楫芯片构建J-scope工程及运行

电子发烧友网 2023-07-10 10:10:41

J-Scope是Segger推出的一款免费软件,用于MCU运行时,实时显示数据波形,可以以类似示波器的方式显示多个变量的值。本文提供简单的例子演示如何基于先楫半导体芯片新建 J-scope工程并显示运行数据。

以下内容介绍分为四个模块:工作模式、软硬件版本、HSS模式工程创建和RTT模式工程创建。

一、工作模式


(资料图片)

J-Scope分为HSS和RTT两种模式:

1. HSS(High-Speed-Sampling)模式:jlink周期性的读取数据,将数据上传至j-scope显示。

优点:

1)简单,代码无需做任何更改

2)通过elf文件确定变量地址

缺点:

1)相比RTT模式数据传输速度更慢

2)异步采样,具有相当的非实时性

2. RTT(Real-Time-Transfer)模式:实时传输模式,代码主动上报变量数值至j-scope显示。

优点:

1)比HSS模式速度更高,最大上传速度可达2MB/s

2)数据上传与MCU内程序运行是同步的,具有实时性

3)要监控的变量可自动检索,无需指定地址或提供elf文件

4)数据可加时间戳

缺点:

1)需要写代码,具体的,需要加载RTT组件,并在代码中手动上传要显示的数据

2)占用一定的内存(RTT Buffer)

二、软硬件版本

硬件J-Link:V10版本及以上(支持risc-v内核),推荐使用J-Link V11。

软件J-Scope:J-Link Software and Documentation pack V7.88f及以上,一般使用最新版本J-Link驱动即可。安装完成后在windows内搜索即可找到J-Scope GUI工具。

三、HSS模式工程创建

1.代码添加

打开SDK1.1.0内hello_world工程,添加如下代码:

float my_pi= 3.141592654f;

float my_two_pi = 6.283185307f;

typedef struct{

float ts;

float omega;

float theta;

float sinval;

float cosval;

}jscope_debug_t;

jscope_debug_t jscope_debug = {

.ts = 0.001f,

.omega = 2.0f * 3.141592654f * 10.0f,

.theta = 0.0f,

.sinval = 0.0f,

.cosval = 0.0f,

};

void jscope_debug_run(jscope_debug_t *p)

{

p->theta += p->omega * 0.001f;

if(p->theta > my_pi)

p->theta = p->theta - my_two_pi;

p->sinval = sinf(p->theta);

p->cosval = cosf(p->theta);

return;

}

以上代码定义了jscope_debug_t结构体,添加了一个jscope_debug_t型变量,并在jscope_debug_run函数内对变量值做修改。

添加如下代码,设计一个1ms定时器中断,在中断函数内执行jscope_debug_run:

void gptmr_init(void)

{

gptmr_channel_config_t config;

gptmr_channel_get_default_config(GPTMR, &config);

config.reload= 100*1000;

gptmr_enable_irq(GPTMR, GPTMR_CH_RLD_IRQ_MASK(GPTMR_CH));

gptmr_channel_config(GPTMR, GPTMR_CH, &config, false);

gptmr_channel_reset_count(GPTMR, GPTMR_CH);

gptmr_start_counter(GPTMR, GPTMR_CH);

intc_m_enable_irq_with_priority(GPTMR_IRQ, 1);

}

void isr_gptmr(void)

{

volatile uint32_t s = GPTMR->SR;

GPTMR->SR = s;

if (s & GPTMR_CH_RLD_STAT_MASK(GPTMR_CH)) {

//this is a 1ms isr_handler

jscope_debug_run(&jscope_debug);

}

}

SDK_DECLARE_EXT_ISR_M(GPTMR_IRQ, isr_gptmr)

注意:需要将监控的变量放在noncachable内存区,或者直接关闭L1缓存(l1c_dc_disable()),否则数据一直在l1缓存内,J-Link读不到数据。

2.GUI操作

打开J-Scope,新建工程,如下所示:

在弹出的界面配置如下:

1、本文作者使用HPM6200evk,因此设备选择HPM6280xPAx。注意,如果找不到对应的芯片型号,考虑升级J-Link驱动包。

2、Sampling Source选择HSS模式。

3、Sampling Rate选择1Khz,即每1000us采集一次数据。

4、指定elf文件。HSS模式会解析elf文件确定变量地址。

选择要监控的数据,在变量后面的方框内打勾即可。

保证芯片内程序正在运行,点击图中开始采样按钮,即可开始采集波形并显示。移动光标可以查看某一时刻采集的3个数据的值。

Sampling后有两个功能按钮,前一个开始/暂停采样,后一个停止采样。Target后有两个功能按钮,前一个开始/暂停芯片执行,后一个复位芯片。

界面右上角放大缩小符号以及其后的下拉框,可控制时间轴缩放。

界面下方watch window内,可显示变量名、变量地址、变量数值(光标处),最大值、最小值、滑动平均值。修改 Y Resolution 与 Y Offset,可以对每一根曲线的Y轴缩放与偏移进行设置。

四、RTT模式工程创建

1. 代码添加

打开SDK1.1.0内hello_world工程的cmakelists,做如下修改:

添加如下代码:

float my_pi = 3.141592654f;

float my_two_pi = 6.283185307f;

typedef struct{

float ts;

float omega;

float theta;

float sinval;

float cosval;

}jscope_debug_t;

jscope_debug_t jscope_debug ={

.ts = 0.001f,

.omega = 2.0f * 3.141592654f * 10.0f,

.theta = 0.0f,

.sinval = 0.0f,

.cosval = 0.0f,

};

void jscope_debug_run(jscope_debug_t *p)

{

p->theta += p->omega * 0.001f;

if(p->theta > my_pi)

p->theta = p->theta - my_two_pi;

p->sinval = sinf(p->theta);

p->cosval = cosf(p->theta);

return;

}

void isr_gptmr(void)

{

volatile uint32_t s = GPTMR->SR;

GPTMR->SR = s;

if (s & GPTMR_CH_RLD_STAT_MASK(GPTMR_CH)) {

//this is a 10ms isr_handler,add your code here

jscope_debug_run(&jscope_debug);

}

}

SDK_DECLARE_EXT_ISR_M(GPTMR_IRQ, isr_gptmr)

void gptmr_init(void)

{

gptmr_channel_config_t config;

gptmr_channel_get_default_config(GPTMR, &config);

config.reload = 100*100;

gptmr_enable_irq(GPTMR, GPTMR_CH_RLD_IRQ_MASK(GPTMR_CH));

gptmr_channel_config(GPTMR, GPTMR_CH, &config, false);

gptmr_channel_reset_count(GPTMR, GPTMR_CH);

gptmr_start_counter(GPTMR, GPTMR_CH);

intc_m_enable_irq_with_priority(GPTMR_IRQ, 1);

}

main函数如下:

int main(void)

{

int u;

char JS_RTT_UpBuffer[4096]; // J-Scope RTT Buffer

int JS_RTT_Channel = 1; // J-Scope RTT Channel

int i;

board_init();

board_init_led_pins();

gptmr_init();

l1c_dc_disable();

board_timer_create(LED_FLASH_PERIOD_IN_MS, board_led_toggle);

printf("helloworld\n");

SEGGER_RTT_ConfigUpBuffer(JS_RTT_Channel, "JScope_f4f4f4f4f4", &JS_RTT_UpBuffer[0], sizeof(JS_RTT_UpBuffer),SEGGER_RTT_MODE_BLOCK_IF_FIFO_FULL);

while(1)

{

SEGGER_RTT_Write(JS_RTT_Channel,&jscope_debug, sizeof(jscope_debug));

}

return 0;

}

上述代码首先配置了RTT组件的upbuffer1,将其命名为"JScope_f4f4f4f4f4"(命名规则下文描述),配置其占用的内存区为JS_RTT_UpBuffer,数组大小为4096个字节,以及写函数的调用策略为当内存区满时以阻塞模式写入(请参考RTT wiki百科)。然后在while循环内,不停的调用SEGGER_RTT_Write函数上传数据到J-Scope进行显示。RTT模式uploadbuffer命名规则:

通道名称以“JScope_”开头,后面跟解析RTT内存数据需要的数据个数、数据类型与每个数据占用的字节数。例如浮点数一定占用4个字节,而整形可以占用1、2、4个字节。

2.GUI操作

打开J-Scope,新建工程,如下所示:

在弹出的界面配置如下:

选择设备,芯片型号。选择RTT模式。如果需要更高的传输速率,可以增加JTAG速度,比如12000khz或20000khz。

进入GUI界面,可以看到我们没有提供任何的elf文件,J-Scope自动识别出上报的结构体有5个float型数据。这是RTT组件自动在内存中搜索,找到了我们定义的RTT buffer的结果。由于没有提供elf,所以watch window内无变量名信息,也无地址信息。

采样可以观察到,波形明显有锯齿了,说明RTT上传的速度高,同一个数据上传了多次。

trigger功能可以用来达成条件触发采样,如图所示,设置sin的值大于0.5时触发采样,则波形从sin=0.5358时开始采样。

小 结

本文首先介绍了基于HPM6000系列芯片如何使用J-Scope调试。总体而言J-Scope是一款相当易用的工具,使用时只需注意变量放在非l1缓存区即可。读者可自行尝试,提高调试效率。

上一篇:今日消息:灵芝孢子粉_灵芝孢子粉功效与作用_破壁灵芝孢子粉功能_破壁灵芝孢子粉的功能 下一篇:最后一页
x
推荐阅读

如何用先楫芯片构建J-scope工程及运行

2023-07-10

今日消息:灵芝孢子粉_灵芝孢子粉功效与作用_破壁灵芝孢子粉功能_破壁灵芝孢子粉的功能

2023-07-10

用手触摸未来,玩出梦想YVR品牌携自研手势识别技术亮相WAIC2023

2023-07-10

牧原股份(002714)7月7日主力资金净买入792.33万元

2023-07-10

QQ炫舞手游好不好玩 具体玩法介绍

2023-07-10

夜探“长江口二号”古船,是种什么样的“奇妙”体验?

2023-07-10

【环球财经】俄罗斯6月所售汽车过半来自海外

2023-07-10

煤价重心小幅上移 下游补库压力不大

2023-07-10

王者荣耀测试自己的本命英雄(王者荣耀本命英雄答题)

2023-07-10

LPL本周积分榜情况:八队锁定季后赛 中部队伍积分锱铢必争

2023-07-09

招聘“业余抓小偷的人员”?“有人应聘无人上岗”

2023-07-09

洛克王国雷欧翅膀 洛克王国雷欧修水渠

2023-07-09

两岸合办碳中和论坛 探讨碳权经济合作与发展

2023-07-09

防水心率仪、反应灯……黑科技助力水球队大运会备战

2023-07-09

完成固定资产投资3049亿元 全国铁路年中“成绩单”来了

2023-07-09

广州一女子在餐厅投放不明物品被抓获,有顾客疑似食用含洗涤剂食品后多次呕吐

2023-07-09

张朝阳回应曾患焦虑症:已痊愈

2023-07-09

俄外交部:美国应对集束弹药造成的平民死伤负责

2023-07-09

避暑游催热中国“夏日经济”

2023-07-09

婴幼儿结核病影像诊断

2023-07-09

大降价后产品力表现如何,详解特斯拉Model Y

2023-07-09

背靠千亿私募大佬,长安基金怎么长不大?

2023-07-09

江苏省教育考试院声明(江苏省教育考试院)

2023-07-09

广东潮汕和潮州是一个地方吗(潮汕与潮州有什么区别)

2023-07-09

粤海园投·肇庆智慧新能源产业园正式动工

2023-07-09

刘国深:两岸关系我强台弱的结构将继续强化

2023-07-09

⚽K联赛战报:曹奎成破僵前中超外援锁胜局!全北2-1首尔主场5连胜

2023-07-08

奥地利外长:强烈反对美国向乌克兰提供集束弹药

2023-07-08

【清凉马拉松 激情六盘水】2023“六马”社会志愿者培训启动

2023-07-08

手机电池鼓包屏幕翘起来

2023-07-08

洱海附近的民宿价格 云南一民宿为防艳遇受伤只接女客 基本情况讲解

2023-07-08

这些症状可能是过敏 专家给青少年支招

2023-07-08

光遇紫金斗篷先祖在哪找

2023-07-08

敲全攻略:防晒霜平价又好用学生党!第一款你肯定没想到!

2023-07-08

证监会:支持公募基金管理人及其他行业机构合理调降基金费率

2023-07-08

最后的桃花源第一卷国破家亡(关于最后的桃花源第一卷国破家亡介绍)

2023-07-08

俄国防部:俄防长绍伊古在南部军区靶场检查新部队训练情况

2023-07-08

突击行动!严查缺斤短两

2023-07-08

from scratch什么意思(scratch是什么意思)

2023-07-08

新郎答谢词汇总

2023-07-08

北京市平谷区发布高温黄色预警

2023-07-08

网友晒视频特斯拉刹车失控 致车辆在车库内撞墙:官方回应

2023-07-08

雪天盐业:融资净偿还157.51万元,融资余额3.01亿元(07-07)

2023-07-08

四年不卡顿,2599元超值新机

2023-07-08

“福”与“贵”双向奔赴,“清新福建”文旅推介会(贵州站)促“百团万人福贵行”

2023-07-08

凉拌牛肉麻辣肉片正宗做法?

2023-07-08

中国股市:2023下半年最具潜力的5大龙头股!

2023-07-08

日本侵华罪证再添新发现

2023-07-08

金玉堂:7.8做黄金成为赢利的交易者是一个旅程,而非目的地!

2023-07-07

7条线路感受智慧美好生活,“2023 世界人工智能大会民营企业社会开放日”主题活动启动

2023-07-07

洛阳城市人家装修公司怎么样(城市人家装修公司怎么样)

2023-07-07

小米5s后置摄像头拆解

2023-07-07

水颜公主和纳多(水颜公主)

2023-07-07

外置无线网卡怎么安装 外置无线网卡怎么安装视频

2023-07-07

无锡单位住房公积金红冲申请表下载入口

2023-07-07

2022年全国职业本科招生7.63万人 同比增长84.39%

2023-07-07

阿里云AI绘画创作大模型通义万相发布 已开启定向邀测

2023-07-07

航锦科技(000818.SZ):预计上半年净利润同比下降59.18%-70.84%

2023-07-07

东亚群星演唱会 下载_东亚群星演唱会

2023-07-07

绿色理念逐步贯穿船舶设计建造全过程 成为中国造船业响亮名片

2023-07-07

300多位两岸政商界代表齐聚宁波:三代台商话“数”机遇

2023-07-07

女孩被蛇咬伤奶奶抓蜘蛛吸毒,土方法“以毒攻毒”致出血加重

2023-07-07

空调安装师傅,困在爆单的酷暑里

2023-07-07

周易和易经是谁写的(易经是谁写的)

2023-07-07

2023年惠州中考录取批次是多少?

2023-07-07

海关总署:禁止进口日本福岛等地食品!严格100%查验!

2023-07-07

国乒11人晋级!迎2场中日对决,王曼昱遇考验,马龙孙颖莎迎内战

2023-07-07

MKS闪耀慕尼黑光博会,“多箭齐发”展示最新激光技术成果!

2023-07-07

女婴出生第一天喝了过期奶粉

2023-07-07

应急管理部启动危化品重大危险源企业部级督导核查

2023-07-07

5G发展迎规模化发展关键期 从“建得好”迈向“用得好”

2023-07-07

许昌禹州市发生2.9级地震,震源深度8公里

2023-07-07

闪银app官方下载(闪银官网登陆)

2023-07-07

下半年楼市怎么走,会出台重磅扶持性政策吗?

2023-07-07

算力普惠推动AI在各领域释放潜力

2023-07-07

水杯有塑料味怎么去除(水杯有塑料味怎么去除掉)

2023-07-07

「吴山时评」“小修小补”回归 城市更有温度

2023-07-07

扫毒十年最强一战!开F16战机轰炸金三角?香港三大影帝联手出演

2023-07-07

广州出台政策破解“四不像”短板,科技成果转化净收入七成以上可用于奖励

2023-07-06

集装箱吞吐量创历史新高 天津港高质量实现“双过半”任务

2023-07-06

1-5月我国服务进出口总额同比增10.2%

2023-07-06

中超第14轮五佳球:津门虎外援贝里奇“神仙球”蝎子摆尾入围

2023-07-06

港股6日跌3.02% 收报18533.05点

2023-07-06

英杰电气接待湖南轻盐创业投资管理有限公司等多家机构调研

2023-07-06

《荣耀手表4,续航天数长达10天领先行业》

2023-07-06

《长安三万里》:爱做官的李白,为何仕途很不顺?

2023-07-06

上海电气国轩首获国家电投大规模锂电池储能系统集成订单

2023-07-06

大洋生物(003017)7月6日主力资金净卖出82.48万元

2023-07-06

世界快资讯:网页文字无法复制?教你三招方法解决!

2023-07-06

当前滚动:征迁一线的主题党日活动

2023-07-06

出台141项举措升级营商环境 广州开发区:做好产业发展“守护者” 焦点资讯

2023-07-06

辽宁大学哲学教授张珂专著《国际关系中的事实性与作伪》面世

2023-07-06

官宣!朱荣振加盟四川训练水平曝光,融入没问题,获内线核心待遇_环球速看料

2023-07-06

28公里,25分钟!来自杭州交警的超级“闪送”!

2023-07-06

偷拍女明星底裤,他太恶臭了_世界热推荐

2023-07-06

美联储暗示进一步加息 美股基准指数下跌

2023-07-06

焦点报道:长沙小升初民办学校今起补录 7月10日进行最后一轮微机派位

2023-07-06

上街区济源路街道“金牌社区书记”工作室以“头雁效应”激发“群雁活力”

2023-07-06

郑州是哪个省属于哪个省(郑州是哪个省)_天天速讯

2023-07-06

三角轮胎:融资净买入425.07万元,融资余额1.46亿元(07-05)-今日播报

2023-07-06