a级 久久,99里面有精品,亚洲av一级免费在线观看,成人免费中文字幕

STM32F4的BootLoader和AP??P程序如何使用

通常在用戶需要實(shí)現(xiàn)IAP功能時(shí),即用戶程序運(yùn)行中作自身的更新操作,需要在設(shè)計(jì)固件程序時(shí)編寫兩個(gè)項(xiàng)目代碼,第一個(gè)項(xiàng)目程序不執(zhí)行正常的功能操作,而只是通過某種通信管道(如USB、USART)接收程序或數(shù)據(jù),執(zhí)行對(duì)第二部分代碼的更新;第二個(gè)項(xiàng)目代碼才是真正的功能代碼。2、怎么得到升級(jí)軟件數(shù)據(jù)并寫入flash2、怎么得到升級(jí)軟件數(shù)據(jù)并寫入flash2、接收編譯好的app的bin文件,寫入flash...

一。概念素養(yǎng)

1.內(nèi)購

IAP 是 In 的縮寫。IAP是用戶自己的程序,在運(yùn)行過程中對(duì)部分User Flash進(jìn)行編程。目的是在產(chǎn)品發(fā)布后,通過預(yù)留的通訊端口方便地更新產(chǎn)品中的固件程序。更新和升級(jí)。

通常,當(dāng)用戶需要實(shí)現(xiàn)IAP功能,即用戶程序進(jìn)行自己的更新操作時(shí),需要在設(shè)計(jì)固件程序時(shí)編寫兩個(gè)工程代碼。第一個(gè)項(xiàng)目程序不執(zhí)行正常的功能操作草叢筆刷,而只是通過某種通信管道(例如USB、USART)接收程序或數(shù)據(jù)并對(duì)第二部分代碼進(jìn)行更新;第二項(xiàng)代碼是真正的功能代碼。

2.

在上述IAP概念中,它是它的第一個(gè)項(xiàng)目程序。主要功能有:從串口、USB等媒體接收數(shù)據(jù);存儲(chǔ)和傳輸數(shù)據(jù);程序跳轉(zhuǎn)等功能。

3.應(yīng)用

IAP 概念中第二項(xiàng)代碼的術(shù)語

編寫Stm32和App的注意事項(xiàng)

1、如何分配和app地址空間

2、如何獲取升級(jí)軟件數(shù)據(jù)并寫入閃存

3、如何從一個(gè)應(yīng)用跳轉(zhuǎn)到另一個(gè)應(yīng)用

4、如何設(shè)置app的中斷向量

5、如何在App中生成bin文件

6、程序執(zhí)行流程

1、如何分配和app地址空間

天正建筑軟件32位下載_creo軟件32位下載_下載stm32程序的軟件

圖1 STM32 Flash分區(qū)情況

(1)分配地址

我正在使用,它的flash大小是512K,所以我把它拆分成這樣:

--- 分配使用,大小為 64k

---- 分配給第一個(gè)APP使用,大小為124k

---- 分配給其他標(biāo)志并被其他標(biāo)志使用

(2)在keil中設(shè)置ROM的大小

A. 中 ROM 大小的設(shè)置

天正建筑軟件32位下載_下載stm32程序的軟件_creo軟件32位下載

B.在App中設(shè)置ROM的大小

2、如何獲取升級(jí)軟件數(shù)據(jù)并寫入閃存

在我的程序中Photoflare(開源圖像處理工具),它通過串口接收數(shù)據(jù),然后調(diào)用(u32,u8*,u32)將接收到的APP程序存儲(chǔ)在FLASH中,也就是應(yīng)用程序的起始地址,也就是應(yīng)用程序CODE,即應(yīng)用程序的大小(字節(jié)),代碼如下:

#define FLASH_APP1_ADDR		0x08010000  	//第一個(gè)應(yīng)用程序起始地址

if(applenth)//串口接收數(shù)據(jù)長度
			{
				printf("開始更新固件...\r\n");	
				LCD_ShowString(30,210,200,16,16,"Copying APP2FLASH...");
 				if(((*(vu32*)(0X20001000+4))&0xFF000000)==0x08000000)//判斷是否為0X08XXXXXX.
				{	 
					iap_write_appbin(FLASH_APP1_ADDR,USART_RX_BUF,applenth);//更新FLASH代碼   
					LCD_ShowString(30,210,200,16,16,"Copy APP Successed!!");
					printf("固件更新完成!\r\n");	
				}else 
				{
					LCD_ShowString(30,210,200,16,16,"Illegal FLASH APP!  ");	   
					printf("非FLASH應(yīng)用程序!\r\n");
				}
 			}else 
			{
				printf("沒有可以更新的固件!\r\n");
				LCD_ShowString(30,210,200,16,16,"No APP!");
			}
			clearflag=7;//標(biāo)志更新了顯示,并且設(shè)置7*300ms后清除顯示	

void iap_write_appbin(u32 appxaddr,u8 *appbuf,u32 appsize)
{
	u32 t;
	u16 i=0;
	u32 temp;
	u32 fwaddr=appxaddr;//當(dāng)前寫入的地址
	u8 *dfu=appbuf;
	for(t=0;t

天正建筑軟件32位下載_creo軟件32位下載_下載stm32程序的軟件

3、如何從一個(gè)應(yīng)用跳轉(zhuǎn)到另一個(gè)應(yīng)用

//跳轉(zhuǎn)到應(yīng)用程序段
//appxaddr:用戶代碼起始地址.
void iap_load_app(u32 appxaddr)
{
	if(((*(vu32*)appxaddr)&0x2FFE0000)==0x20000000)	//檢查棧頂?shù)刂肥欠窈戏?
	{ 
		jump2app=(iapfun)*(vu32*)(appxaddr+4);		//用戶代碼區(qū)第二個(gè)字為程序開始地址(復(fù)位地址)		
		MSR_MSP(*(vu32*)appxaddr);					//初始化APP堆棧指針(用戶代碼區(qū)的第一個(gè)字用于存放棧頂?shù)刂?
		jump2app();									//跳轉(zhuǎn)到APP.
	}
}		

4、如何設(shè)置app的中斷向量

SCB->VTOR = | ;/*中斷向量表位于()+*/

因?yàn)锳PP的起始地址是()+

5、如何在App中生成bin文件

我們點(diǎn)擊 MDK 中的 ?User 選項(xiàng)卡下載stm32程序的軟件,在 After Build/ 列中下載stm32程序的軟件,選中 Run #1,然后寫入:D:\tools\mdk5.14\ARM\ARMCC\bin\.exe -- bin -o ..\OBJ\RTC.bin..\OBJ\RTC.axf迅捷Gif制作工具,如圖:

6、程序執(zhí)行流程

下載stm32程序的軟件_天正建筑軟件32位下載_creo軟件32位下載

總結(jié):

里面主要是

1、設(shè)置和應(yīng)用空間

2、接收編譯好的app的bin文件寫入flash

3、實(shí)現(xiàn)跳轉(zhuǎn)

該應(yīng)用程序的主要變化是:

1、 ROM 起始地址和分配的空間大小

2、 重定向中斷向量

3、 生成bin文件

發(fā)表評(píng)論

本站涵蓋的內(nèi)容、圖片、視頻等數(shù)據(jù)。若涉及版權(quán)問題,請(qǐng)聯(lián)系我們-#97510453#-進(jìn)行刪除!

Copyright 2020-2022.All Rights Reserved 版權(quán)所有 蘇州助華幫軟件有限公司? | 網(wǎng)站備案號(hào):蘇ICP備2020061154號(hào)-1 |

国产精品色一情一乱一伦| 91蜜桃成人操| 国产亚洲一区二| 丝袜色婷婷五月导航| 国产女同视频| 下身被黑人粗暴进入| 激情一区二区在线| 99热国产这里只有精品99| 日韩色级片先锋影音| 日韩精品免费一线| 中文区中文字幕免费看| 亚洲国内一区二区三区| 瑜伽少妇高潮正在播放| 日韩无码精品中文字幕| 在线激情不卡日韩不卡| 乱伦网页二区三区| 黑人尤物| 少妇特黄A一区二区三区| 成人无码视频| 亚洲粉嫩AV乱码久久精品蜜桃 | 亚洲国产日韩精品无码一区| 精品美女| 亚洲最大天堂网| 国产区在线视频播放免费| 好吊妞亚洲欧美视频| 日韩无线视频一区免费| 久久久久久久中文版| 另类制服丝袜国产亚洲第一页| 最新久久动漫无打码| 高清囯产女厕| 伊人久久大杳蕉综合大象| 欧美亚洲黄色不卡一区| 国产成人传媒国产| 老熟妇高潮一区二区三区| 高清无码一区| 一级毛片免线观看| 成人在线免费免费| 无码色大片| 激情亚洲欧美色图| 日本一本区| 日日摸日日碰夜夜爽无|