在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 9208|回复: 38

[原创] 使用DE2-115简单实现CortexM0_DesignStart并Keil调试成功

[复制链接]
发表于 2021-7-12 14:10:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 Pasingen 于 2021-7-16 11:24 编辑

经过试验,将arm官方网站上的CortexM0_DesignStart系统,即下载文件AT510-MN-80001-r2p0-00rel0.tgz,进行处理后,在DE2-115平台上实现。当前版本运行时钟50MHz,仅GPIO连接到LEDR上,进行跑马灯试验。
微信图片_20210712134421.jpg
硬件平台照片。KeilMDK调试器Ulink连接到JP4,LED_red进行跑马灯。
基本上没有增加功能,占用资源如下图:
微信图片_20210712134518.png
即一共使用了8600多个LE。由于设置ROM和RAM均为16Kx32,共使用了128KB(1Mbits)memory资源。
原则上以文件修改最少的方式。修改的RTL代码的比较如下图,左边为官方下载、右边为修改:

RTL修改

RTL修改


另,使用Keil进行调试时,需要自行做一个flash download的算法,以便让Keil知道怎样将程序下载到FPGA中CortexM0的ROM中。范例参见Keil\ARM\Flash\。
由于使用FPGA的MegaMem来作为CortexM0的程序ROM,因此算法采用直接写入无等待的方式。

由于CortexM0 DesignStart仅提供SWD调试、没有提供JTAG调试,设计的FPGA也使用了ULink2的SWD调试功能。
先做一个这样的经简单原型吧。后续有时间,再逐渐增加外设,将DE2-115的更多板上资源集成到CortexM0上。

嗯,没有使用niosII的sopc,也没有使用Cyclone V的A9双核系统,而是傻傻的使用CortexM0来试验,耗脑子而且笨拙,当作asic的简单系统集成来学习吧。
==============================
注:启动SWD的修改:
(1)cmsdk_MCU_system.v文件,加入SWD连接
(2)cmsdk_mcu.v关闭JTAG,另最好加入同步采样抗噪声
修改代码如下附件:
cmsdk_mcu_system.zip (10.68 KB, 下载次数: 130 )





发表于 2021-7-12 16:19:05 | 显示全部楼层
赞赞赞
发表于 2021-7-12 17:28:02 | 显示全部楼层
牛牛牛  
发表于 2021-7-15 22:19:19 | 显示全部楼层
想学习!
 楼主| 发表于 2021-7-15 22:26:01 | 显示全部楼层
本帖最后由 Pasingen 于 2021-7-29 01:28 编辑


我是用DE2-115开发板和Ulink/SLink调试器,进行开发调试的
发表于 2021-7-15 23:07:25 | 显示全部楼层


Pasingen 发表于 2021-7-15 22:26
如果你有DE2-115开发板和Ulink/SLink调试器,我可以将FPGA项目与Keil项目发给你。
...


我没有DE2-115开发板,下载器是有的,FPGA只有Xilinx的kcu105,难道这个DesignStart版本的M0必须和Altera的DE2-115这个板子配套吗?另外还想请教那个flash编程的算法是咋实现的?最后,下载器连接后keil的target里debug中没有识别出SW Device,还能继续下载吗?多谢!
 楼主| 发表于 2021-7-16 00:17:24 | 显示全部楼层
本帖最后由 Pasingen 于 2021-7-16 00:24 编辑


舀二两爱 发表于 2021-7-15 23:07
我没有DE2-115开发板,下载器是有的,FPGA只有Xilinx的kcu105,难道这个DesignStart版本的M0必须和Altera ...


(1)当然可以是其它开发板,如我在DE2-115,在Kintex7-420T上都实现成功。你的这个kcu105很高档,肯定更没有问题;
(2)Keil下载器必须找到CortexM0,找不到的话Keil的Debuge内是空的。我是从CortexM0 Start的RTLSim环境下移植的
(3)RTL环境里,SWD没有连接。找到cmsdk_mcu_system.v文件里的这两行:  .CDBGPWRUPREQ  (),  .CDBGPWRUPACK  (1'b0),,修改为:  .CDBGPWRUPREQ  (CDBGPWRUPREQ),  .CDBGPWRUPACK  (CDBGPWRUPACK),
(4)memory使用FPGA的宏来定义,注意用作程序的存储器,引入写功能,以便Keil能够通过SWD端口来调试;
(5)Keil的flash编程器,按照MDK Keil的flash下例子来修改,注意分配的CortexM0的程序存储器地址空间和数据存储器地址空间

发表于 2021-7-16 02:26:36 来自手机 | 显示全部楼层


Pasingen 发表于 2021-7-16 00:17
(1)当然可以是其它开发板,如我在DE2-115,在Kintex7-420T上都实现成功。你的这个kcu105很高档,肯定更 ...


请问你在420上用了多少资源,我有325的开发板不知能否可以用
发表于 2021-7-16 09:10:33 | 显示全部楼层


Pasingen 发表于 2021-7-16 00:17
(1)当然可以是其它开发板,如我在DE2-115,在Kintex7-420T上都实现成功。你的这个kcu105很高档,肯定更 ...


我也是使用DesignStart的RTL进行移植的,并且那两行代码已经修改,通过Testbench可以根据SWD协议给flash编程,但仍是在仿真级别完成。移植至FPGA上后,keil还是无法识别,不知道还要改哪些地方,这是我的QQ,1556534832
发表于 2021-7-16 09:16:13 | 显示全部楼层


Pasingen 发表于 2021-7-16 00:17
(1)当然可以是其它开发板,如我在DE2-115,在Kintex7-420T上都实现成功。你的这个kcu105很高档,肯定更 ...


我也是使用DesignStart的RTL进行移植,并且已经修改了这两个代码,可以通过testbench进行flash编程,但仍是在RTL仿真级别。移植至FPGA后,keil便无法识别,不知道还要改哪些地方?这是我的QQ,1556534832
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-1 10:09 , Processed in 0.027657 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表