基于stm32f4控制器的程序遠程下載的實現(xiàn)方法
【專利摘要】本發(fā)明涉及一種基于STM32F4控制器的程序遠程下載的實現(xiàn)方法,通過編譯連接STM32F4_bootloader工程代碼,將最終執(zhí)行代碼下載到系統(tǒng)板,啟動后就可以看到boot界面。STM32F4的引導加載程序bootloader通過上位機的串口與STM32F4系統(tǒng)連接,可以實現(xiàn)通過串口將上位機中已經(jīng)編譯連接后的*.bin文件下載到STM32F4的內(nèi)部Flash固定位置中、將STM32F4內(nèi)部Flash固定位置中的內(nèi)容上傳到上位機文件、從STM32F4內(nèi)部FLASH固定位置開始執(zhí)行程序。解決了下載程序需要硬件下載器的不便性。設計實現(xiàn)了STM32F4控制器的啟動程序,提出了使用該軟件下載器下載應用程序必須進行的修改,實現(xiàn)了應用程序的下載功能,并進一步提出應用現(xiàn)有的網(wǎng)絡技術(shù)實現(xiàn)應用程序的遠程下載功能。
【專利說明】基于STM32F4控制器的程序遠程下載的實現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種嵌入式處理器,特別涉及一種基于STM32F4控制器的程序遠程下載的實現(xiàn)方法。
【背景技術(shù)】
[0002]STM32F4是ARM最新的嵌入式處理器Cortex M4,常用于控制和信號處理功能混合的數(shù)字控制市場。該控制器(MCU)提高了運行速度,增加了信號處理功能,同時增加了浮點運算單元(FPU)、自適應實時加速器、32位多重AHB總線矩陣和多通道DMA控制器、數(shù)字信號控制器(DSC)等多個新特性。其集成度較高,功耗較低,內(nèi)置最高IMB片上Flash,192KBSRAM,正常工作頻率為168MHz,因此得到了廣泛的應用。對于STM32F4系列產(chǎn)品,其程序啟動運行及程序下載方式有好幾種,但都需要硬件的下載器,如JLINK,對于程序更新非常不方便。
[0003]STM32F4啟動方式及程序下載:STM32F4系列產(chǎn)品上電啟動時按照其硬件啟動管腳B00T1和Β00Τ0決定,如表1所示STM32F4系列啟動管腳配置。對于不同的啟動方式,程序駐扎空間也不同,表2列出了 STM32F407存儲區(qū)域配置情況。通常用戶應用程序燒寫在閃存Flash中,因此硬件配置成Β00Τ0為接地。當在調(diào)試過程中為了測試結(jié)果,也經(jīng)常在內(nèi)嵌SRAM中測試,此時需要配置成B00T1和O均接成高電平。另外STM32F4還提供了系統(tǒng)存儲區(qū)啟動的方式,即將BOOTl-O接成01。此方式主要目的是為了使用ST公司提供的FlashLoader通過串口下載用戶程序的方法。但是這種方式必須執(zhí)行ST的Flash Loader程序,并且最不方便的是必須在燒寫程序時,配置BOOTl-O為01,燒好以后將Β00Τ0改接為地。通常下載程序主要通過開發(fā)器或下載器如JLINK等實現(xiàn),在Keil uvision MDK集成開發(fā)環(huán)境中,JLINK可以同時作為調(diào)試器, 并且可以實現(xiàn)單步調(diào)試。
[0004]表1
【權(quán)利要求】
1.一種基于STM32F4控制器的程序遠程下載的實現(xiàn)方法,其特征在于,包括如下具體步驟: O將STM32F4的引導加載程序bootloader通過上位機的串口與STM32F4系統(tǒng)連接,程序開始后即進行STM32F4系統(tǒng)初始化和參數(shù)設置,同時解鎖STM32F4系統(tǒng)Flash,以備Flash的讀寫操作,初始化串口,開啟串口中斷,STM32F4系統(tǒng)和上位機的通信完全通過串口 的 STM32F4_bootloader 來實現(xiàn); 2)STM32F4_bootloader每隔I秒向串口輸出信息,同時檢測上位機是否發(fā)送程序重下載命令信息,如果5秒內(nèi)沒有收到串口信息,則系統(tǒng)自動運行在Flash固定位置的用戶應用程序,如5秒內(nèi)收到上位機數(shù)據(jù),則通過串口輸出菜單信息,用戶選擇使用STM32F4_bootloader處理用戶程序; 3)若用戶輸入‘I’,則進行程序下載,通過串口將上位機中已經(jīng)編譯連接后的bin文件下載到STM32F4的內(nèi)部Flash固定位置中;若用戶輸入‘2’則進行逆過程,將STM32F4內(nèi)部Flash固定位置中的內(nèi)容上傳到上位機文件;若用戶輸入‘3’則進行用戶程序的自動執(zhí)行,從STM32F4內(nèi)部FLASH固定位置開始執(zhí)行程序。
2.根據(jù)權(quán)利要求1所述基于STM32F4控制器的程序遠程下載的實現(xiàn)方法,其特征在于,所述串口的發(fā)送接收數(shù)據(jù)采用了 YMODEM協(xié)議。
3.根據(jù)權(quán)利要求1所述基于STM32F4控制器的程序遠程下載的實現(xiàn)方法,其特征在于,所述步驟I) STM32F4系統(tǒng)初始化,STM32F4_bootloader程序駐扎STM32F4內(nèi)部Flash空間的SectorO,其系統(tǒng)地址為0x0800 0000?0x0800 3FFF,應用程序下載空間固定從Sectorl即地址0x0800 4000開始,應用程序大小限制于在Sectorl?Sectorll之間,執(zhí)行應用程序時,固定從地址0x0800 4000開始。
4.根據(jù)權(quán)利要求3所述基于STM32F4控制器的程序遠程下載的實現(xiàn)方法,其特征在于,所述步驟I) STM32F4系統(tǒng)參數(shù)設置,按照正常流程生成的應用程序是按照從Flash的O地址開始執(zhí)行的,其地址配置、中斷向量表進行修正,具體包括如下步驟: A:生成默認運行程序: 首先按照正常的操作流程、默認配置建立應用程序; B:修改應用程序的地址空間: 按照默認流程編譯連接產(chǎn)生的應用程序,修改對應于Flash的O地址,也即STM32F4的系統(tǒng)地址空間 SectorO,應用 了 STM32F4_bootloader 以后,SectorO 空間由 STM32F4_bootloader占據(jù);修改Flash下載地址Sectorl,系統(tǒng)上電后首先執(zhí)行STM32F4_bootloader,當下載、上傳或執(zhí)行應用程序時按照從應用程序下載空間Sectorl開始; C:修改應用程序的中斷向量表地址: 將原來中斷向量地址從Flash的O地址開始,改為Flash下載地址Sectorl開始,當加了 STM32F4_bootloader以后,中斷向量表必須進行偏移; D:將Keil uvision MDK環(huán)境中生成的axf文件轉(zhuǎn)換為bin文件: 在Keil uvision MDK的集成開發(fā)環(huán)境中,默認情況下生成*.axf格式的調(diào)試文件和*.hex格式的可執(zhí)行文件,將*.axf格式文件或*.hex格式文件轉(zhuǎn)換成二進制*.bin格式的文件。
【文檔編號】G06F9/445GK103514018SQ201310463593
【公開日】2014年1月15日 申請日期:2013年10月8日 優(yōu)先權(quán)日:2013年10月8日
【發(fā)明者】袁三男, 王紹徐 申請人:上海電力學院