【iCore4 双核心板_ARM】例程三十二:UART_IAP_ARM实验——更新升级STM32
实验现象及操作说明:
1、本例程共有两个代码包,APP和IAP,IAP程序功能实现将APP程序升级至STM32中。
2、直接上电或烧写程序将执行升级的APP应用程序。
BIN升级文件产生方法:
1、编译APP工程,产生.hex文件。
2、将.hex文件拖至HEX2BIN.EXE即可产生.bin文件。
核心代码:
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_USART6_UART_Init(); /* USER CODE BEGIN 2 */
//³õʼ»¯´®¿Ú²¨ÌØÂÊ 115200
usart6.initialize();
usart6.printf("\x0c"); //ÇåÆÁ
usart6.printf("\033[1;32;40m"); //ÉèÖÃÖÕ¶Ë×ÖÌåΪÂÌÉ« LED_GREEN_ON;
if(ARM_KEY_STATE == KEY_UP){ //°´¼üËÉ¿ª×´Ì¬Ö±½ÓÌøÏòÓ¦ÓóÌÐò
goto start;
}
while(){ //°´¼ü°´Ï£¬½øÈëÉý¼¶×´Ì¬
if(i++ == ){
//´®¿Ú·¢ËÍ×Ö·ûC
usart6.send_byte('C');
i = ;
} if(usart6.receive_buffer[] == SOH){
break;
}
}
/* USER CODE END 2 */ /* Infinite loop */
/* USER CODE BEGIN WHILE */
while ()
{
/* USER CODE END WHILE */
if(usart6.receive_ok_flag == ){
usart6.receive_ok_flag = ;
LED_GREEN_OFF;
xmodem.process(); if(usart6.receive_buffer[] == EOT){
usart6.send_byte(ACK); //¶Á±£»¤
for(i = ; i < ; i ++);
HAL_FLASH_Lock(); //·¢ËÍÎļþ³É¹¦£¬Â̵ÆÁÁ
LED_BLUE_OFF;
LED_RED_OFF;
LED_GREEN_ON; while();
}
}
/* USER CODE BEGIN 3 */ }
start: //²âÊÔÓû§´úÂëÊÇ·ñ´ÓAPPLICATION_ADDRESS±»±à³Ì
if (((*(__IO uint32_t*)APPLICATION_ADDRESS) & 0x2FFE0000 ) == 0x20000000){ //Ìø×ªÖÁÓû§³ÌÐò
JumpAddress = *(__IO uint32_t*) (APPLICATION_ADDRESS + );
Jump_To_Application = (pFunction) JumpAddress; //³õʼ»¯Óû§³ÌÐòµÄ¶ÑÕ»Ö¸Õë
__set_MSP(*(__IO uint32_t*) APPLICATION_ADDRESS); //Ìø×ªÖÁÓ¦ÓóÌÐò
Jump_To_Application();
}else{
led_trade();
}
/* USER CODE END 3 */ }
源代码下载链接:
链接:http://pan.baidu.com/s/1kVLzFPP 密码:37zh
iCore4链接:

【iCore4 双核心板_ARM】例程三十二:UART_IAP_ARM实验——更新升级STM32的更多相关文章
- 【iCore3 双核心板】例程三十:U_DISK_IAP_FPGA实验——更新升级FPGA
实验指导书及代码包下载: http://pan.baidu.com/s/1jH1TiKY 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 ...
- 【iCore3 双核心板】例程三十一:HTTP_IAP_FPGA实验——更新升级FPGA
实验指导书及代码包下载: http://pan.baidu.com/s/1gdYnQGN iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 【iCore3 双核心板】例程三十二:UART_IAP_ARM实验——更新升级STM32
实验指导书及代码包下载: http://pan.baidu.com/s/1hrnLJwC iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 【iCore4 双核心板_ARM】例程三十:U_DISK_IAP_FPGA实验——更新升级FPGA
实验现象及操作说明: 1.将升级文件拷入U盘system文件夹中,通过U盘转接线将U盘连接到iCore4 USB OTG接口. 2.烧写程序成功,绿色ARM·LED灯点亮,三色FPGA·LED灯循环点 ...
- 【iCore4 双核心板_ARM】例程三十三:SD_IAP_ARM实验——更新升级STM32
实验现象及操作说明: 1.本例程共有两个代码包,APP和IAP,IAP程序功能实现将APP程序升级至STM32中. 2.直接上电或烧写程序将执行升级的APP应用程序. 3.按下按键上电或写程序将进行升 ...
- 【iCore1S 双核心板_ARM】例程二十:UART_IAP_ARM实验——更新升级STM32
实验现象及操作说明: 1.本例程共有两个代码包,APP和IAP,IAP程序功能实现将APP程序升级至STM32中. 2.直接上电或烧写程序将执行升级的APP应用程序. BIN升级文件产生方法: 1.编 ...
- 【iCore3 双核心板】例程三十六:DAC实验——输出直流电压
实验指导书及代码包下载: http://pan.baidu.com/s/1bRVnzS iCore3 购买链接: https://item.taobao.com/item.htm?id=5242294 ...
- 【iCore3 双核心板】例程三十四:U_DISK_IAP_ARM实验——更新升级STM32
实验指导书及代码包下载: http://pan.baidu.com/s/1pKabR7P iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 【iCore3 双核心板】例程三十五:HTTP_IAP_ARM实验——更新升级STM32
实验指导书及代码包下载: http://pan.baidu.com/s/1eRgzSPW iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
随机推荐
- 洛谷 P2814 家谱(gen)
题目背景 现代的人对于本家族血统越来越感兴趣. 题目描述 给出充足的父子关系,请你编写程序找到某个人的最早的祖先. 输入输出格式 输入格式: 输入由多行组成,首先是一系列有关父子关系的描述,其中每一组 ...
- pip命令无法使用
今天在学习Python时需要安装Requests 使用命令:pip install requests 提示错误 我的解决办法是: cmd 切换到Python安装路径中的scripts ...
- python3 词法拆分
1.可以利用translate+string模块 2.可以利用jieba进行分词(结巴分词会分成词,但是我需要断句,所以这里不用) 3.利用python内置函数解决 仅仅只列出第3种方法,其他两种方法 ...
- HTML5:在移动端禁用长按选中文本功能
很多时候,我们在写的手机页面需要用户进行长按然后响应一个事件.但是在微信中用户的长按操作被默认为谈出来一个复制的选项.那么这个时候如何去禁止这个东西呢? 其实很简单,方法看下面: 只需要在你需要禁止的 ...
- [NOIP2018]OI之旅的中转站
咳咳(清嗓子) 好了,现在NOIP2018结束了 作为初三的一名没考到一等的选手,非常抱歉,我不能继续参加了 那么……我接下来的目标就是中考了(虽然现实很残酷) 能不能继续自己的OI路,就要看自己了 ...
- 移动端页面:viewport与分辨率的坑
<meta name="viewport" content="width=device-width, user-scalable=no"> < ...
- Java基础知识总结--final、finally、finalize的区别
谈谈final.finally.finalize的区别 1.final修饰符:如果一个类被声明为final,意味着这个类不能再被派生出新的子类,不能作为父类被别的类继承.因此,一个类不能即被声明为ab ...
- HDU 2000 ASCII码排序
题目链接:HDU 2000 Description 输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符. Input 输入数据有多组,每组占一行,有三个字符组成,之间无空格. Outp ...
- this-11.1-笔记
1. 基本数据类型:string undefined null boolean number 引用数据类型 Object array function 1.2 二者的区别 基本数据 ...
- button标题左对齐
Button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;//左对齐(UIControlContentHo ...