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