今天呢,犯了一個很嚴重的錯誤,我不知道這會產生什么樣的影響,但我知道,如果我以后再沒有具體的了解,仔細認真地觀察,認證,只會滑到無底的深淵。做技術來不得半點虛假,切記一知半解,凡事都要弄得清楚明白,認識東西是有順序的,從簡單到困難,從外觀,到內部,一個東西起什么樣的作用,為什么會起這樣的作用,也是很重要的,一直以來,我都認為自己是一個很較真的人,但最近發現,我都沒有把把這優點用到正地方,好了,開始今天的正題,今天,講的是我犯的一個錯誤,一個技術不該犯得錯誤。
這篇文章是給自己提個醒,給自己一個承諾,不要馬虎,不要想當然,也不要沖動,不要得過且過,學習不痛苦,那就不是學習,成長不痛苦,那叫什么成長。
好,上主題
眾所周知,MCU都會有調試,燒錄,下載的工具,比如JLINK,STLINK,NULINK,等很多,不同廠家,不同品牌幾乎都會有他們自己燒錄,下載的方式,那么今天我給大家講講從各種燒錄器的歷史,廠家,和他們的硬件部分的不同,至於軟件部分,有些東西我也不是很清楚,所以,等我了解清楚之后,我在進行講解。如果見到這篇文章得人恰好懂得這一部分,或者是有人願意指導或一起學習,歡迎交流,我也要向您虛心受教,本文雖是經過仔細驗證,但是總會有些紕漏,歡迎指正。
首先講講新唐的燒錄方式:
再講之前,有必要先講講ICP,IAP,ISP的關系
我之前也一直搞不太清楚他們之間的區別。今天查了資料后總結整理如下。
ISP:In System Programing 在系統編程
IAP:In applicating Programing 在應用編程
ICP:In Circuit Programing 在電路編程
區別:
1、ISP是把房子拆了再重造一間,那么在造好之前當然是不能住人的啦!
2、IAP是在造好的房子里邊進行一些裝修,裝修的時候人還住在里面!
3、ICP是在電路編程,是LPC芯片的編程方式,相當於ATMEL的ISP,而LPC的ISP就相當於ATMEL的IAP了。
ISP是指可以在板級上進行編程,而不用把芯片拆下來放到燒寫器中,即不脫離系統,所以稱作“在系統編程”,它是對整個程序的擦除和寫入,通過單片機專用的串行編程接口對單片機內部的Flash存儲器進行編程。即使芯片焊接在電路板上,只要留出和上位機接口的串行口就能進行燒寫。
IAP同樣是在板級上進行編程,MCU獲取新代碼並對程序的某部分重新編程,即可用程序來改變程序,修改程序的一部分達到升級、消除bug的目的,而不影響系統的其它部分,燒寫過程中程序可以繼續運行,另外接口程序是自已寫的,這樣可以進行遠程升級而不影響應用。IAP的實現更加靈活,通常可利用單片機的串行口接到計算機的RS232口,通過專門設計的固件程序來編程內部存儲器。
ISP、IAP、ICP與傳統燒寫方式的區別
1)在開發階段
改code時, 不再需要將MCU從板子上拔起來, 拿到燒錄器上燒, 然后再裝回去. 可以直接利用ISP/ICP Programmer做板上燒錄, 為開發者提供了極大的便利性.
2)在量產階段
客戶可以采用”先焊到板子上再燒code”的方式, 將燒code的動作安排在生產線的某一站.
那么傳統的方式 (先將code燒好再焊到板子上)有什么缺點?
傳統的方式是這樣的: 拆封–>從tray盤取出chip–>燒錄–>把chip放回tray盤.
這樣的流程比起上面建議的方式: 增加了燒錄時間, 容易造成QFP包裝的chip彎腳, 或忘了燒code即放回tray盤.
3)在成品階段
已組裝好的成品若要改code, 可以透過預留的接口, 利用ISP或ICP, 更新MCU, 不需要拆機.
什么是 IAP (In-Application Programming)?
IAP指的是, MCU在運行的狀態下, 利用ISP的機制, 不透過外接工具 (例如: ISP Programmer) 的幫忙, 去更新APROM, DataFlash 或 CONFIG. 要實現這種功能,
系統必須有取得更新數據的能力, 例如: 處於某一種聯機的狀態.
(注: 有時候, ISP/IAP的分別並不是那么清楚!)
ISP的工作原理
ISP 的實現相對要簡單一些,一般通用做法是內部的存儲器可以由上位機的軟件通過串口來進行改寫。對於單片機來講可以通過SPI或其它的串行接口接收上位機傳來的數據並寫入存儲器中。所以即使我們將芯片焊接在電路板上,只要留出和上位機接口的這個串口,就可以實現芯片內部存儲器的改寫,而無須再取下芯片。
ISP的優點
ISP技術的優勢是不需要編程器就可以進行單片機的實驗和開發,單片機芯片可以直接焊接到電路板上,調試結束即成成品,免去了調試時由於頻繁地插入取出芯片對芯片和電路板帶來的不便。
好回到正題,不過我要先問一個問題,你知道什么是SWD接口么?
你可能知道JLINK的JTAG接口,先來一張圖,看看它們之間的對應關系:
關於STLINK的4SWIM四線接口我覺得有必要說明一下:
下面是由於STM8的SWIM接口只需要4根連接線,所以ST-LINK/V2連接至STM8目標板時需要注意連接位置。
關於SWD,SWIM和JTAG之間的區別與聯系,弄清楚明白剩下的就好理解了。今天先到這里,后續我會補上,上一篇是關於N76E003的學習的第一篇,我會繼續完善的。
本文參考鏈接:http://blog.csdn.net/u014124220/article/details/50829713
http://blog.csdn.net/lj9010/article/details/51861605
誰知道明天什么結果,我只要把當前事做好就夠了,不管能不能得到我想要的,只要我天天都在往前走,就夠了。