整理:Miler Shao 今天冬至,也是個(gè)節(jié)日,祝大家節(jié)日快樂(lè),尤其一直耕耘在調(diào)試一線的工程師們。 STM32F1系列MCU隸屬同一ARM CORTEX M3內(nèi)核,依據(jù)其自嵌的Flash 容量大小及互連功能特色,ST 公司將其大致分為 5類器件,分別是小容量器件、中等容量器件、大容量器件、超大容量器件、互聯(lián)型器件。 小容量器件[low-density devices]: 內(nèi)部FLASH容量在16-32K Byte的STM32F101、STM32F102、STM32F103器件。 中等容量器件[Medium-density devices]: 內(nèi)部FLASH容量在64-128K Byte的STM32F101、STM32F102、STM32F103器件。 大容量器件[High-density devices]: 內(nèi)部FLASH容量在256-512K Byte的STM32F101、STM32F102、STM32F103器件。 超大容量器件[XL-density devices]: 內(nèi)部FLASH容量在768-1024K Byte的STM32F101、STM32F102、STM32F103器件。 互聯(lián)型器件Connectivity line devices]: 特指帶雙CAN和USB OTG功能的STM32F105XX、STM32F107XX系列的器件。 整體上講,這5類器件軟硬件兼容性極高,尤其硬件管腳安排上。相同管腳數(shù)、不同容量的器件的管腳安排是完全一致的。 當(dāng)然這5類器件也存在著一些細(xì)微的差異。 關(guān)于那些差異,這里僅就平常朋友們常遇到或栽跟頭的地方,跟大家作三點(diǎn)分享交流。 1、這幾個(gè)類型的器件所支持的中斷個(gè)數(shù)及矢量安排有差別。在工程項(xiàng)目里,所選擇的啟動(dòng)文件就不一樣。開(kāi)發(fā)時(shí)參照器件類型選擇 startup_stm32f10x_ld.s /startup_stm32f10x_md.s /startup_stm32f10x_hd.s/startup_stm32f10x_xl.s/startup_stm32f10x_cl.s 的其中之一。 這里出現(xiàn)最多的問(wèn)題現(xiàn)象就是,在某個(gè)器件里跑得好好的程序,尤其跟中斷有關(guān)的代碼,移植到另外一個(gè)器件時(shí)發(fā)現(xiàn)不聽(tīng)使喚而異常。 2、這幾個(gè)類型的器件內(nèi)部flash的頁(yè)大小[page size]有所不一樣。在涉及flash編程時(shí)要特別注意這點(diǎn)。其中小容量器件、中等容量器件的page size 為1K,而大容量器件、超大容量器件、互聯(lián)型器件的page size 為2K。 這里容易出現(xiàn)的問(wèn)題就是針對(duì)某個(gè)器件做的IAP,換到別的器件時(shí)結(jié)果就異常了。 3、互聯(lián)型器件跟其它同時(shí)具有CAN和 USB外設(shè)的器件在使用上有差異 。 互聯(lián)型器件的CAN和 USB外設(shè)可以同時(shí)開(kāi)啟使用,而其它同時(shí)具有CAN和 USB外設(shè)的器件不可以同時(shí)使用CAN和 USB外設(shè),因?yàn)?br>在這些器件里 ,CAN和 USB是共享一個(gè)緩沖區(qū)。 相比前面兩點(diǎn),這個(gè)問(wèn)題相對(duì)咨詢得少些。不過(guò)如果不明了這點(diǎn),假設(shè)哪位工程師因?yàn)楫a(chǎn)品功能調(diào)整或成本考慮,從互聯(lián)型器件換為某大容量器件時(shí),恭喜,估計(jì)又要折騰一把。順便提下,互聯(lián)型器件的時(shí)鐘樹(shù)跟其它器件也略有不同,移植時(shí)也稍微留意下。 幾小點(diǎn)拋磚引玉似的跟大家分享下,任何一個(gè)地方若是你忽略了,都可能被折騰得夠嗆。
|