技术文章:FPGA杂记之基础篇二及Demo案例
2.1 keil工程环境创建
创建文件夹目录如下:
图1
其中板级支持包直接由原厂提供。
先创建keil工程,打开keil,创建工程,保存在对应的MCU→project目录下。
器件选择ARM cortex M3器件。
工程建好后,添加必要的BSP包中的文件如下,创建好后的工程目录如左栏:
其中,startup组下的文件分别来自MCUELF2_BSPDeviceELF2Source和MCUELF2_BSPDeviceELF2SourceARM目录下;lib组的文件来自MCUELF2_BSPDriver;log组文件保存在MCUELF2_BSPDebug和MCUELF2_BSPDebugRTT目录下。
新建main.c文件并保存在图1所示的总文件目录浏览的MCUàsrc文件夹下并添加main.c到工程main组中。
下面设置一些工程的环境,打开options for target对话框。
切换到user栏,设置如下参数,这些参数会影响输出keil工程的*.asm 和*.bin 文件,我们需要通过添加这两条指令得到bin文件并最终提供给FPGA。
添加的语句分别如下:
fromelf -c -v -a --output=@P.asm Objects%L
fromelf --bin --output=@P.bin Objects%L
再切换到C/C++栏,设置头文件路径如下:
也可以直接添加如下目录
..\ELF2_BSP;..\ELF2_BSPCMSISCoreInclude;..\ELF2_BSPDebug;..\ELF2_BSPDebugRTT;..\ELF2_BSPDriver;..\ELF2_BSPDriverregmap;..\ELF2_BSPDeviceELF2Include;..\ELF2_BSPDeviceELF2SourceARM
其余设置如下图:
添加分散加载文件elf2_example.sct(elf2_example.sct文件具体代码可参考工程)
环境设置完毕后可以开始编写工程代码。
2.2 C代码编辑
在main函数中编写对GPIO的操作。
先对GPIO初始化结构体赋值,再调用GPIO初始化函数,HAL_GPIO_WritePin函数对相应的GPIO进行高低赋值。
本次使用C代码对GPIO1_0的操作是置低,GPIO1_0具体含义会在下一节(1.3)进行说明。
2.3 TD工程创建和代码编辑
打开TD4.6.5或其他版本创建新的工程。
保存在总目录的FPGA→project目录下,并选择对应的器件类型。
添加或者编辑源文件,本次工程模块声明如下:
其中hw_led是由FPGA逻辑控制的led,sw_led是由MCU代码控制的led(即1.2中的gpio1_0)。hw_led的控制代码如下,sw_led的控制代码详见1.2:
然后例化MCU和PLL,PLL例化主要得到输入到MCU的系统时钟,例化过程略,这里贴上在顶层中调用的结果:
输出的200M的时钟接到MCU的系统时钟。
例化MCU界面如下:

图片新闻
最新活动更多
-
6月13日立即参评>> 【评选】维科杯·OFweek2025中国工业自动化及数字化行业年度评选
-
即日-6.16立即报名>> 【在线会议】olution Talks |Computex 2025关键趋势深读
-
7月22-29日立即报名>> 【线下论坛】第三届安富利汽车生态圈峰会
-
7.30-8.1火热报名中>> 全数会2025(第六届)机器人及智能工厂展
-
7月30-31日报名参会>>> 全数会2025中国激光产业高质量发展峰会
-
即日-2025.8.1立即下载>> 《2024智能制造产业高端化、智能化、绿色化发展蓝皮书》
推荐专题
- 1 智造赋能,生态共融:大联大携手产业伙伴,共绘新质工业宏伟蓝图
- 2 数智破局·生态共生:重构全球制造新引擎 2025 WOD制造业数字化博览会即将在沪盛大启幕
- 3 谁将成为行业榜样?维科杯·OFweek2025中国工业自动化及数字化行业年度评选等您来参与!
- 4 【重磅来袭】6月17日上海见!全球智造巨头聚首,60余场前沿论坛,制造业数字化盛会邀您共启数智破局之旅!
- 5 安森美正式参评“维科杯·OFweek 2025中国工业自动化与数字化行业优秀产品奖”
- 6 当数智工业邂逅大湾区,看PHIIDF2025如何破界,链动全球!
- 7 抢先解锁!全数会2025机器人及智能工厂展览会核心亮点速递
- 8 iEi威强电邀您共襄AIAE Expo 2025北京国际工业自动化盛会,探索智能工业新边界!
- 9 欧姆龙正式参评“维科杯·OFweek 2025中国工业自动化与数字化行业优秀产品奖”
- 10 世界计量日盛会启幕,聚焦测量体系变革:质量、效率与动力
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论