米尔电子
直播中

北方

9年用户 149经验值
擅长:嵌入式技术
私信 关注
[技术]

基于米尔安路飞龙派FPGA FPSoC+baremetal硬核开发

1 感谢提供参与评测的机会名单揭晓,追加30套开发板!米尔-安路飞龙派「硬核创造力」。首先收到了开发板如下。
1566466307.jpg

这个是米尔YM90G模块及其开发板,适合嵌入式开发。采用安路科技的FPSOC。
按照原来的计划,使用这个进行电机控制最方便的就是baremetal硬核开发,直接用verilog搞起来。
2 下载并安装TD,不过需要先申请license登录安路官网注册并提交需求就好。
这个是安装完以后的,创建新工程,

Y90M_01.PNG
其中,最重要就是选对芯片,这里使用了52480单元LUT
Y90M_02.PNG
然后就进入了开发界面,这个和Xilinx的界面非常相似,不过明显精简了很多,更好使用了。

Y90M_03.PNG
启动之后需要创建block diagram,这个是另外启动了一个flow程序实现的。

Y90M_04.PNG
选择IP,添加ARM core,这个竟然是免费的,那么用起来就好了很多。也更具有兼容性。对比xilinx是自有的软内核,用起来免版税,不过,兼容性就差一下了。
Y90M_05.PNG
随后就是添加总线,时钟,定义外设,DDR设定等。

Y90M_06.PNG
这个就是最后生成的最简设计图,包括了UART,GPIO外设,这个好用的就是外设是绑定的,不用再选择定义了,减少了导入board 限制的过程。

Y90M_07.PNG

然后这个需要导出一个硬件设计的hdf文件,以便在FD中使用。
当然,在这个环境里,可以直接用verilog编写逻辑,直接下载到开发板的。

3 FD的下载和使用
这个是导入了FD并开发代码。首先创建工程,需要导入前面用TD开发的硬件定义hdf,相当于自己设计了一个arm内核。
在FD中,就对这个arm内核进行软件开发。
这个是创建时启用的范例UART代码,看起来是否很熟悉。

#include<stdio.h>

#include<math.h>

#include<time.h>

#include"al_core.h"

#include<stdlib.h>



AL_S32main()

{

constAL_CHAR *str = "Hello World From Anlogic!";



if (AL_BSP_VERSION_PATCH == 0)

printf("%s \r\n""BSP version:%s.%d.%d\r\n", str, AL_BSP_NAME, AL_BSP_VERSION_MAJOR, AL_BSP_VERSION_MINOR);

else

printf("%s \r\n""BSP version:%s.%d.%d.sp%d\r\n", str, AL_BSP_NAME,

                                                AL_BSP_VERSION_MAJOR, AL_BSP_VERSION_MINOR, AL_BSP_VERSION_PATCH);



printf("    __  __     ____         _       ______       __    __ \r\n");

printf("   / / / /_   / / /___     | |     / / __ \\_____/ ____/ / \r\n");

printf("  / /_/ / _ \\/ / / __ \\    | | /| / / / / / ___/ / __  /  \r\n");

printf(" / __  /  __/ / / /_/ /    | |/ |/ / /_/ / /  / / /_/ /   \r\n");

printf("/_/ /_/\\___/_/_/\\____/     |__/|__/\\____/_/  /_/\\__ _/    \r\n");



return 0;

}

在这个FD中,可以直接用program命令把代码编译并下载到开发板中。这个,可以下载到RAM中,能够正确运行,但是断电就没有常驻了,随后可以下载到外部存储,然后跳线启动,就可以实现完整的开发了。

4 小结
这个过程花了不少时间,使用起来很方便。不过,最后下载到开发板的时候,发现,开发板配套的下载器只是一个TTL转换线,读取串口数据通信的。
不是JTAG下载线,这个还是一个专用的AT-LINK,在anlogic的官网可以找到。
不过,我在米尔TB站寻求购买时,发现,现在只有一个Xilinx的下载器,不知道是否能够兼容啊。
因为前面花了不少时间在开发环境,就等不了这个快递和退货周期了。这个部分的测试就先记录一下。
感觉,开发起来非常丝滑,自定义配置的比较少。相比xilinx的开发,在总线,位宽,速率都要自己熟悉,一个不熟悉就不能编译过去,感觉非常友好。
这个对于开发者应该是非常适合的。而且这个性价比应该是超级好。
下一步按照SDK的开发模式进行下一步开发,先安装虚机机,下载SDK
Y90M_10.PNG

这个过程来自gitee,也是比较快的。
在随后继续进行开发。

更多回帖

发帖
×
20
完善资料,
赚取积分