侵权投诉
搜索
更多>> 热门搜索:
订阅
纠错
加入自媒体

技术文章:FPGA杂记之基础篇二及Demo案例

2020-12-11 16:03
润欣科技
关注

2.1 keil工程环境创建

创建文件夹目录如下:

【技术分享】FPGA杂记之基础篇二及Demo案例

图1

其中板级支持包直接由原厂提供。

先创建keil工程,打开keil,创建工程,保存在对应的MCU→project目录下。

【技术分享】FPGA杂记之基础篇二及Demo案例

器件选择ARM cortex M3器件。

【技术分享】FPGA杂记之基础篇二及Demo案例

工程建好后,添加必要的BSP包中的文件如下,创建好后的工程目录如左栏:

【技术分享】FPGA杂记之基础篇二及Demo案例

其中,startup组下的文件分别来自MCUELF2_BSPDeviceELF2Source和MCUELF2_BSPDeviceELF2SourceARM目录下;lib组的文件来自MCUELF2_BSPDriver;log组文件保存在MCUELF2_BSPDebug和MCUELF2_BSPDebugRTT目录下。

新建main.c文件并保存在图1所示的总文件目录浏览的MCUàsrc文件夹下并添加main.c到工程main组中。

【技术分享】FPGA杂记之基础篇二及Demo案例

下面设置一些工程的环境,打开options for target对话框。

【技术分享】FPGA杂记之基础篇二及Demo案例

切换到user栏,设置如下参数,这些参数会影响输出keil工程的*.asm 和*.bin 文件,我们需要通过添加这两条指令得到bin文件并最终提供给FPGA。

【技术分享】FPGA杂记之基础篇二及Demo案例

添加的语句分别如下:

fromelf -c -v -a --output=@P.asm Objects%L

fromelf --bin --output=@P.bin Objects%L

再切换到C/C++栏,设置头文件路径如下:

【技术分享】FPGA杂记之基础篇二及Demo案例

也可以直接添加如下目录

..\ELF2_BSP;..\ELF2_BSPCMSISCoreInclude;..\ELF2_BSPDebug;..\ELF2_BSPDebugRTT;..\ELF2_BSPDriver;..\ELF2_BSPDriverregmap;..\ELF2_BSPDeviceELF2Include;..\ELF2_BSPDeviceELF2SourceARM

其余设置如下图:

【技术分享】FPGA杂记之基础篇二及Demo案例

添加分散加载文件elf2_example.sct(elf2_example.sct文件具体代码可参考工程)

【技术分享】FPGA杂记之基础篇二及Demo案例

环境设置完毕后可以开始编写工程代码。

2.2 C代码编辑

在main函数中编写对GPIO的操作。

【技术分享】FPGA杂记之基础篇二及Demo案例

先对GPIO初始化结构体赋值,再调用GPIO初始化函数,HAL_GPIO_WritePin函数对相应的GPIO进行高低赋值。

本次使用C代码对GPIO1_0的操作是置低,GPIO1_0具体含义会在下一节(1.3)进行说明。

2.3 TD工程创建和代码编辑

打开TD4.6.5或其他版本创建新的工程。

【技术分享】FPGA杂记之基础篇二及Demo案例

保存在总目录的FPGA→project目录下,并选择对应的器件类型。

【技术分享】FPGA杂记之基础篇二及Demo案例

添加或者编辑源文件,本次工程模块声明如下:

【技术分享】FPGA杂记之基础篇二及Demo案例

其中hw_led是由FPGA逻辑控制的led,sw_led是由MCU代码控制的led(即1.2中的gpio1_0)。hw_led的控制代码如下,sw_led的控制代码详见1.2:

【技术分享】FPGA杂记之基础篇二及Demo案例

然后例化MCU和PLL,PLL例化主要得到输入到MCU的系统时钟,例化过程略,这里贴上在顶层中调用的结果:

【技术分享】FPGA杂记之基础篇二及Demo案例

输出的200M的时钟接到MCU的系统时钟。

例化MCU界面如下:

【技术分享】FPGA杂记之基础篇二及Demo案例

<上一页  1  2  3  4  5  下一页>  余下全文
声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

    文章纠错
    x
    *文字标题:
    *纠错内容:
    联系邮箱:
    *验 证 码:

    粤公网安备 44030502002758号