【iCore1S 双核心板_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_CRC_Init();
MX_USART1_UART_Init(); /* USER CODE BEGIN 2 */
usart1.initialize();
usart1.printf("\x0c"); //ÇåÆÁ
usart1.printf("\033[1;32;40m"); //ÉèÖÃÖÕ¶Ë×ÖÌåΪÂÌÉ« for(i=;i<;i++); //°´¼üËÉ¿ª£¬ÌøÖÁstart
if(ARM_KEY_STATE == KEY_UP){
goto start;
} while(){
if(i ++ == ){ //´®¿Ú·¢ËÍ×Ö·ûC
usart1.send_byte('C');
i = ;
} if(usart1.receive_buffer[] == SOH){ break;
}
} /* USER CODE END 2 */ /* Infinite loop */
/* USER CODE BEGIN WHILE */
while ()
{
if(usart1.receive_ok_flag == ){
usart1.receive_ok_flag = ;
xmodem.process(); if(usart1.receive_buffer[] == EOT){
usart1.send_byte(ACK); //¶Á±£»¤
for(i = ; i < ; i ++);
HAL_FLASH_Lock(); //·¢ËÍÎļþ³É¹¦£¬Â̵ÆÁÁ
LED_BLUE_OFF;
LED_RED_OFF;
LED_GREEN_ON; while();
}
} /* USER CODE END 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/1jIaM6lo 密码:7oiv

【iCore1S 双核心板_ARM】例程二十:UART_IAP_ARM实验——更新升级STM32的更多相关文章
- 【iCore4 双核心板_ARM】例程三十二:UART_IAP_ARM实验——更新升级STM32
实验现象及操作说明: 1.本例程共有两个代码包,APP和IAP,IAP程序功能实现将APP程序升级至STM32中. 2.直接上电或烧写程序将执行升级的APP应用程序. BIN升级文件产生方法: 1.编 ...
- 【iCore3 双核心板】例程二十:LAN_TCPC实验——以太网数据传输
实验指导书及代码包下载: http://pan.baidu.com/s/1pJY5uXH iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 【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 ...
- 【iCore3 双核心板】例程二十六:MODBUS TCP实验——电源监控
实验指导书及代码包下载: http://pan.baidu.com/s/1pKhxKd9 iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 【代码升级】【iCore3 双核心板】例程二十八:FSMC实验——读写FPGA
实验指导书及代码包下载: http://pan.baidu.com/s/1qXAxwgk 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 双核心板】例程三十二:UART_IAP_ARM实验——更新升级STM32
实验指导书及代码包下载: http://pan.baidu.com/s/1hrnLJwC iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 【iCore3 双核心板】例程二十八:FSMC实验——读写FPGA
实验指导书及代码包下载: http://pan.baidu.com/s/1gerjjxh iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
随机推荐
- C#多线程和线程池问题
static void Main(string[] args) { Thread threadA = new Thread(ThreadMethod); //执行的必须是无返回值的方法 threadA ...
- js点击回到顶部
---恢复内容开始--- <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...
- NineveGL引擎学习笔记
- Yii2 数据库sql查询
Yii2.0 对数据库 查询的一些简单的操作 User::find()->all(); //返回所有数据: User::findOne($id); //返回 主键 id=1 的一条数据(举个例子 ...
- java文件课后动手动脑
package 第九周作业1; import java.io.File; import java.io.FileInputStream; import java.io.IOException; imp ...
- Dada_WenJian
import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.FileWr ...
- django部署admin后台static文件丢失问题解决
settings.py 中进行设置 设置static文件目录 STATIC_ROOT = os.path.join(BASE_DIR, 'static').replace('\\','/') 运行命令 ...
- 解压文件出错解决方法(invalid compressed data--format violated)
解压缩出现这个报错: 1.考虑是否传输过程出错,重新传输试试. 2.使用传输工具时,选择二进制试试. 3.使用传输工具时,选择ASCII试试. 解压缩命令: gzip -d filename gun ...
- iOS开发中的富文本
1. 改变指定字符的颜色 NSString * text = [NSString stringWithFormat:@"%@米",distance]; NSMutableAttri ...
- Accumulator<Long> implements of JavaSparkContext in Spark1.x
As we all know , up to Spark 1.6.2, JavaSparkContext only provides two kinds of accumulators: Intege ...