实验现象:

1、先烧写FPGA程序,再烧写ARM程序,ARM程序烧写完毕后即开始读写RAM测试,测试成功,绿色ARM·LED亮,测试失败,红色ARM·LED闪烁。

2、测试成功,ARM通过映射寄存器来控制FPGA三色LED循环点亮。

核心代码:

int main(void)
{ /* USER CODE BEGIN 1 */
int i; /* USER CODE END 1 */ /* MCU Configuration----------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */
SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */
MX_GPIO_Init();
MX_FMC_Init(); /* USER CODE BEGIN 2 */
for(i = ;i < ;i ++){
fpga_write(i, * i);
}
for(i = ;i < ;i ++){
if(fpga_read(i) != *i){
while(){
LED_RED_ON;
HAL_Delay();
LED_RED_OFF;
HAL_Delay();
}
}
}
LED_GREEN_ON;
/* USER CODE END 2 */ /* Infinite loop */
/* USER CODE BEGIN WHILE */
while ()
{
/* USER CODE END WHILE */ /* USER CODE BEGIN 3 */
FPGA_LED_RED_ON;
FPGA_LED_GREEN_OFF;
FPGA_LED_BLUE_OFF;
HAL_Delay(); FPGA_LED_RED_OFF;
FPGA_LED_GREEN_ON;
FPGA_LED_BLUE_OFF;
HAL_Delay(); FPGA_LED_RED_OFF;
FPGA_LED_GREEN_OFF;
FPGA_LED_BLUE_ON;
HAL_Delay();
}
/* USER CODE END 3 */ }
//-----------------------Module fsmc_ctrl-----------------------//
module fsmc_ctrl(
input clk_100m,
input rst_n,
input [:]ab,
inout [:]db,
input wr_n,
input rd_n,
input cs0,
input nadv,
output led_red,
output led_green,
output led_blue
); wire wr,rd;
wire [:]out_data;
//-------------------------wr & rd-----------------------------//
assign wr = cs0 | wr_n;
assign rd = cs0 | rd_n; //-------------------------address-----------------------------//
reg [:]address;
always@(posedge nadv or negedge rst_n)
if(!rst_n)
address <= 'd0;
else
address <= {ab,db}; //锁存地址 //----------------------------clk------------------------------//
reg wr_clk1,wr_clk2;
always@(posedge clk_100m or negedge rst_n)
if(!rst_n)
begin
wr_clk1 <= 'd1;
wr_clk2 <= 'd2;
end
else
{wr_clk2,wr_clk1} <= {wr_clk1,wr}; wire clk = (!wr_clk2 | !rd); assign db = !rd ? out_data:'hzzzz; //----------------------------ram------------------------------//
ram u1(
.address(address),
.clock(clk),
.data(db),
.wren(!wr),
.rden(!rd),
.q(out_data)
); //----------------------------led_ctrl-------------------------//
reg led[:];
always@(posedge wr or negedge rst_n)
if(!rst_n)
begin
led[] <= 'd1;
led[] <= 'd0;
led[] <= 'd1;
end
else
begin
case(address) //映射寄存器地址
'd10:led[0] <= db;
'd11:led[1] <= db;
'd12:led[2] <= db;
endcase
end assign led_red = led[];
assign led_green = led[];
assign led_blue = led[]; endmodule

源代码下载链接:

链接:http://pan.baidu.com/s/1nvkhPWl 密码:7x76

iCore4链接:

【iCore4 双核心板_ARM】例程二十八:FSMC实验——读写FPGA的更多相关文章

  1. 【iCore3 双核心板】例程二十:LAN_TCPC实验——以太网数据传输

    实验指导书及代码包下载: http://pan.baidu.com/s/1pJY5uXH iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

  2. 【代码升级】【iCore3 双核心板】例程二十八:FSMC实验——读写FPGA

    实验指导书及代码包下载: http://pan.baidu.com/s/1qXAxwgk iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

  3. 【iCore3 双核心板】例程二十八:FSMC实验——读写FPGA

    实验指导书及代码包下载: http://pan.baidu.com/s/1gerjjxh iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

  4. 【iCore3 双核心板】例程二十二:LAN_UDP实验——以太网数据传输

    实验指导书及代码包下载: http://pan.baidu.com/s/1kTPlJMJ iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

  5. 【iCore3 双核心板】例程二十四:LAN_DHCP实验——动态分配IP地址

    实验指导书及代码包下载: http://pan.baidu.com/s/1i4vMMv7 iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

  6. 【iCore3 双核心板】例程二十五:LAN_DNS实验——域名解析

    实验指导书及代码包下载: http://pan.baidu.com/s/1jHlBpqe iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

  7. 【iCore3 双核心板】例程二十六:MODBUS TCP实验——电源监控

    实验指导书及代码包下载: http://pan.baidu.com/s/1pKhxKd9 iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

  8. 【iCore3 双核心板】例程二十九:SD_IAP_FPGA实验——更新升级FPGA

    实验指导书及代码包下载: http://pan.baidu.com/s/1o7h158m iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

  9. 【iCore3 双核心板】例程二十一:LAN_TCPS实验——以太网数据传输

    实验指导书及代码包下载: http://pan.baidu.com/s/1ntTjWpV iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

  10. 【iCore3 双核心板】例程二十三:LAN_HTTP实验——网页服务器

    实验指导书及代码包下载: http://pan.baidu.com/s/1getgyKr iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

随机推荐

  1. Hibernate中Restrictions查询用法(转)

    Restrictions查询用法 HQL运算符 QBC运算符 含义 = Restrictions.eq() 等于equal <> Restrictions.ne() 不等于not equa ...

  2. BZOJ.4199.[NOI2015]品酒大会(后缀自动机 树形DP)

    BZOJ 洛谷 后缀数组做法. 洛谷上SAM比SA慢...BZOJ SAM却能快近一倍... 只考虑求极长相同子串,即所有后缀之间的LCP. 而后缀的LCP在后缀树的LCA处.同差异这道题,在每个点处 ...

  3. pip命令无法使用

    今天在学习Python时需要安装Requests    使用命令:pip install requests       提示错误 我的解决办法是: cmd 切换到Python安装路径中的scripts ...

  4. 20172310 2017-2018-2 《程序设计与数据结构》实验三报告(敏捷开发与XP实践)

    20172310 2017-2018-2 <程序设计与数据结构>实验三报告(敏捷开发与XP实践) 课程:<程序设计与数据结构> 班级: 1723 姓名: 仇夏 学号:20172 ...

  5. Centos--vsftp的配置

    第一次正式接触linux,折腾ftp好几遍,安装第三次终于好了 安装    yum -y vsftpd install     vsftpd:very secure ftp daemon   (dea ...

  6. 学习Struts--Chap07:Struts2文件上传和下载

    1.struts2文件上传 1.1.struts2文件上传的基本概述 在开发web应用的时候,我们一般会为用户提供文件上传的功能,比如用户上传一张图像作为头像等.为了能上传文件,我们必须将表单的met ...

  7. 一个封装不错的 TcpClient 类

    using System;using System.Net;using System.Net.Sockets;using System.Text;using System.Threading; nam ...

  8. Django深度剖析

    启动过程 通过命令行执行 python manage.py runserver 127.0.0.1:8000 启动Django服务 manage.py模块获取到命令行参数manage.py runse ...

  9. IDEA 下载 和 安装 22

    1. IDEA 下载 网址     pttps://www.jetbrains.com IDEA      优点  :高度集成企业软件工程的概念(svn, git) 缺点: 破解存在在法律风险 ; E ...

  10. web 和 java 资源

    1.自己按照上面的网址和密码自己去下载都那些视频都是vip的视频现在下载免费  7-17JAVA开发搜索引擎自动提示[优效学院向天] 链接:http://pan.baidu.com/s/1bpEkfR ...