【iCore4 双核心板_ARM】例程二十九:SD_IAP_FPGA实验——更新升级FPGA
实验现象及操作说明:
1、烧写程序成功,绿色ARM·LED灯点亮,三色FPGA·LED灯循环点亮,烧写失败,如果挂载SD卡失败,红灯快闪,如果打开文件失败,蓝灯快闪,读取文件指针移动失败,白灯点亮,升级失败,红灯慢闪。
2、上电时按着ARM·KEY,进入虚拟U盘模式,计算机将出现一个磁盘,可将升级文件拷入SD卡。
核心代码:
int main(void)
{ /* USER CODE BEGIN 1 */
int i;
int k;
unsigned int counter;
unsigned long int ncounter = ;
unsigned char buffer[];
FIL fil;
FATFS fatfs;
static FRESULT res;
/* 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(); /* USER CODE BEGIN 2 */
if(ARM_KEY_STATE == KEY_DOWN){
MX_USB_DEVICE_Init();
while(){
LED_RED_ON;
HAL_Delay();
LED_RED_OFF;
HAL_Delay();
}
} if(BSP_SD_Init() != MSD_OK){ while(){
LED_RED_ON;
for(i = ;i < ;i ++);
LED_RED_OFF;
for(i = ;i < ;i ++);
}
}
HAL_Delay(); res = f_mount(&fatfs,"",);
if(res != RES_OK){
while(){
LED_RED_ON;
for(i = ;i < ;i ++);
LED_RED_OFF;
for(i = ;i < ;i ++);
}
} res = f_open(&fil,"0:/system/sram.rbf",FA_READ);
if(res != RES_OK){ while(){
LED_BLUE_ON;
for(i = ;i < ;i++);
LED_BLUE_OFF;
for(i = ;i < ;i++);
}
} res = f_lseek(&fil,);
if(res != RES_OK){
//°×É«
LED_RED_ON;
LED_BLUE_ON;
LED_GREEN_ON;
while(){
}
} //开始升级FPGA
NCONFIG_OFF;
DCLK_OFF;
for(i = ; i < ; i++);
if(NSTATUS == )
{
LED_RED_ON;
return ;
}
for(i = ;i < ;i++);
NCONFIG_ON;
for(i = ; i < ; i++); while(ncounter < fil.fsize)
{
res = f_read(&fil,buffer,,&counter);
if(res != RES_OK){ while(){
LED_RED_ON;
for(i = ;i < ;i++);
LED_RED_OFF;
for(i = ;i < ;i++);
}
}
for(k = ; k < counter; k++)
{
for(i = ; i < ; i++)
{
if(buffer[k]&0x01)DATA0_ON;
else DATA0_OFF;
DCLK_ON;
buffer[k] >>= ;
DCLK_OFF;
}
ncounter++;
}
}
if(CONFIG_DONE == ){
LED_GREEN_ON;
}else {
LED_BLUE_ON;
} for(i = ; i < ; i++)
{
DCLK_ON;
for(i = ; i < ; i++);
DCLK_OFF;
for(i = ; i < ; i++);
} /* USER CODE END 2 */ /* Infinite loop */
/* USER CODE BEGIN WHILE */ while ()
{
/* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ }
/* USER CODE END 3 */ }
源代码下载链接:
链接:http://pan.baidu.com/s/1skMtdDV 密码:5bbq
iCore4链接:

【iCore4 双核心板_ARM】例程二十九:SD_IAP_FPGA实验——更新升级FPGA的更多相关文章
- 【iCore3 双核心板】例程三十:U_DISK_IAP_FPGA实验——更新升级FPGA
实验指导书及代码包下载: http://pan.baidu.com/s/1jH1TiKY iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 【iCore3 双核心板】例程三十一:HTTP_IAP_FPGA实验——更新升级FPGA
实验指导书及代码包下载: http://pan.baidu.com/s/1gdYnQGN iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 【iCore3 双核心板】例程二十:LAN_TCPC实验——以太网数据传输
实验指导书及代码包下载: http://pan.baidu.com/s/1pJY5uXH iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 【iCore3 双核心板】例程二十九:SD_IAP_FPGA实验——更新升级FPGA
实验指导书及代码包下载: http://pan.baidu.com/s/1o7h158m iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 【iCore3 双核心板】例程三十三:SD_IAP_ARM实验——更新升级STM32
实验指导书及代码包下载: http://pan.baidu.com/s/1jHmvQfk iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 【iCore1S 双核心板_ARM】例程二十:UART_IAP_ARM实验——更新升级STM32
实验现象及操作说明: 1.本例程共有两个代码包,APP和IAP,IAP程序功能实现将APP程序升级至STM32中. 2.直接上电或烧写程序将执行升级的APP应用程序. BIN升级文件产生方法: 1.编 ...
- 【iCore4 双核心板_ARM】例程三十:U_DISK_IAP_FPGA实验——更新升级FPGA
实验现象及操作说明: 1.将升级文件拷入U盘system文件夹中,通过U盘转接线将U盘连接到iCore4 USB OTG接口. 2.烧写程序成功,绿色ARM·LED灯点亮,三色FPGA·LED灯循环点 ...
- 【iCore3 双核心板】例程二十二:LAN_UDP实验——以太网数据传输
实验指导书及代码包下载: http://pan.baidu.com/s/1kTPlJMJ iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 【iCore3 双核心板】例程二十四:LAN_DHCP实验——动态分配IP地址
实验指导书及代码包下载: http://pan.baidu.com/s/1i4vMMv7 iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 【iCore3 双核心板】例程二十五:LAN_DNS实验——域名解析
实验指导书及代码包下载: http://pan.baidu.com/s/1jHlBpqe iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
随机推荐
- BZOJ.5286.[AHOI/HNOI2018]转盘(线段树)
BZOJ LOJ 洛谷 如果从\(1\)开始,把每个时间\(t_i\)减去\(i\),答案取决于\(\max\{t_i-i\}\).记取得最大值的位置是\(p\),答案是\(t_p+1+n-1-p=\ ...
- 2017-9-17-MDIO信号线串联小电阻作用【转】
今天做集成测试的时候被领导说测到的MDIO信号过冲较大(正反向过冲都很大),容易损坏接口或阻容,万一那个电容耐压值不够就挂了. 我原本是不屑的,私以为MDIO.IIC.SPI等只要抓到的波形不影响判决 ...
- [JOISC2014]電圧
[JOISC2014]電圧 题目大意: 一个\(n(n\le10^5)\)个点,\(m(m\le2\times10^5)\)条边的无向图.要在图中找到一条边,满足去掉这条边后,剩下的图是一个二分图,且 ...
- Lubuntu安装屏幕键盘onboard,使触摸屏可以登录和输入
Lubuntu18.04 LTS桌面使用 LightDM 显示管理器,默认已经安装了GTK+ 欢迎界面 需要的话可以下列命令安装使用 $ sudo apt-get install lightdm-gt ...
- [Codeforces113C]Double Happiness(数论)
题意 给定闭区间[l,r] [l,r] [l,r],找出区间内满足t=a2+b2 t=a^{2}+b^{2} t=a2+b2的所有素数t t t的个数( a,b a,b a,b为任意正整数). 思路 ...
- Yii2 DetailView小部件
DetailView小部件 Yii 提供了一套数据库小部件 widgets,这些小部件可以用于显示数据 DetailView 小部件用于显示一条记录数据 ListView 和 GridView 可以用 ...
- Django深度剖析
启动过程 通过命令行执行 python manage.py runserver 127.0.0.1:8000 启动Django服务 manage.py模块获取到命令行参数manage.py runse ...
- Servlet(9)—HttpServlet和改进Servlet实例
HttpServlet:针对Http协议定义的一个Servlet基类,唯一的功能就是强制类型转换ServletRequest转换成HttpServletRequest,ServletResponse转 ...
- windows NT的意义和各个版本
javascript中navigator.userAgent里的window NT今天为了尝试查看网址的来源document.referrer,但是不知道每个浏览器的版本号,然后我就用navigato ...
- dubbo+zipkin调用链监控(二)
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...