1979|3

574

帖子

11

TA的资源

一粒金砂(高级)

楼主
 

go go go, 让RSL10的LED开始闪烁(文尾有小彩蛋) [复制链接]

  本帖最后由 sunduoze 于 2021-4-17 23:51 编辑

目标:搭建基础开发环境,实现arduino接口RS10-002GEVB 板板载LED闪烁

环境:Windows10 + Keil5 + Segger Jlink + RS10-002GEVB 板

 

Step1:Keil5 + Segger Jlink这两个环境安装此处略过,下载ONSemiconductor.RSL10.3.4.2-4.pack,

并安装。

Step2:打开Keil环境,点击pack install 图标并弹出其界面, 在Devices中选择RSL10,然后点击右侧Examples,选择blinky然后点击Copy按钮。

Step3:按照Step2操作后弹出Copy Example 对话框,选择路径并点击ok即可。

Step4:通过Step3,工程会自动打开,此时连接RS10-002GEVB 到电脑,然后选择Options for Target按钮并弹出页面,选择Debug栏,再选择Settings,弹出新的页面,此时Debug栏可见J-Link SN(RSL10板载J-Link) & RSL10 的ID Code,这时说明板卡连接状态正常。

Step5:点击Flash Download栏,发现没有flash编程算法,自己也没找到,此时只能用外部的segger工具烧录固件了。

 

Step6:点击图中所示的编译按钮,等待编译完成0Error,2warning

 

Warning1, 报结尾没有END指令,emmm,issue记下来,目前不知为何

Warning2, sct文件中,报DRAM中ZI (Zero Initialize)仅匹配已删除的未使用的章节,也不明白,issue

Step7. By the way, 先处理主线任务,从目录D:\Desktop\blink\source\samples\uv\blinky\Objects找到编译生成的hex文件,然后搜索并打开J-Flash Lite,中间提示的对话框忽略,软件打开后选择Data File,然后找到hex并打开,然后点击Program Device,完成烧录,可以看到开发板上的LED 1(DIO6)1s闪烁2次。

附上工程 blink.zip (58.76 KB, 下载次数: 7)

 

 

***彩蛋****

1.查看main函数中初始化后有PRINTF函数,而且开发板自带的j-link是支持usb CDC虚拟串口的,但是用串口助手并没有看到有任何信息发出。

2. 跳转到printf文件的条件编译部分发现是空的,刚好看到SEGGER_RTT的头,emmm,那就用j-link的RTT来打印print信息吧
3.打开工程中的魔法棒,选择c/c++,在define中增加OUTPUT_INTERFACE = OUTPUT_RTT,记得用英文逗号或空格隔开,如果用串口打印则输入:OUTPUT_INTERFACE = OUTPUT_UART,配置完成后重新编译&烧录

4.搜索电脑J-Link RTT Viwer并打开,按照如下123操作,然后会看到左边RTT黑色框中会print 代码中的信息。

5.更换成串口,再来,emmm,灯不闪了,打开串口助手(baud 115200 选择cdc uart),可以看到打印了设备初始化,后续的LED ON & LED OFF都去哪了?

6. 用j-link在线debug,发现程序死在了DMA Busy里边,emmmmm,先吃饭,有空再继续解。

 

OUTPUT_INTERFACE = OUTPUT_UART配置下的附件 blink_uart.zip (84.85 KB, 下载次数: 6)

 

</br>

***************************************华丽分割线************************************************************

</br> 20210417

1.今天稍看了下源代码,blinky代码中,还包含按键输入的功能,使用RTT PRINTF模式现象如下:

通过按键控制led是否闪烁

2.找到使用uart 打印用例的bug,OUTPUT_INTERFACE = OUTPUT_UART,uart printf是使用的uart tx dma,开了dma 通道7的中断,DMA7_IRQn,与此同时也开启了按键输入中断DIO0_IRQHandler,但是按键输入中断在初始化部分未配置中断优先级,而且故在app.c 95行增加

```

NVIC_SetPriority(DIO0_IRQn, 0x5);

```

按键中断优先级配置低于uart 的tx dma中断

编译,运行,还是不正常。。。。(每一次大的间隔是按完按键后打印的信息)

在线debug发现app.c 的38行条件,else if (DIO_DATA->ALIAS[BUTTON_DIO] == 0),其中DIO_DATA->ALIAS[BUTTON_DIO]这个条件总是为0,按键第一次按下时会触发,但是已经拿开了,为什么还会触发一次?奇怪。。。,先酱紫,休息了。

 

最新回复

动作很快呀   详情 回复 发表于 2021-4-16 21:05
点赞(2) 关注
 
 

回复
举报

6593

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 
本帖最后由 Jacktang 于 2021-4-16 13:22 编辑

arduino也挺好玩

Keil5 + Segger Jlink这两个环境安装有无教程,没安装成功的原因,与系统有关么,用的是win10的专业版系统

点评

win7 win10应该都可以, 百度搜索一下以下这两组关键字,都可以找到安装教程 windows keil mdk5 jlink windows安装  详情 回复 发表于 2021-4-16 13:28
 
 
 

回复

574

帖子

11

TA的资源

一粒金砂(高级)

板凳
 
Jacktang 发表于 2021-4-16 13:05 arduino也挺好玩 Keil5 + Segger Jlink这两个环境安装有无教程,没安装成功的原因,与系统有关么,用的 ...

win7 win10应该都可以, 百度搜索一下以下这两组关键字,都可以找到安装教程 windows keil mdk5 jlink windows安装

 
 
 

回复

282

帖子

2

TA的资源

一粒金砂(高级)

4
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表