在實際項目中,我們經常需要提取一個數值的某些位的數碼,比如用數碼管來顯示數值或將一個數值轉成字符串,都會涉及到這一操作。
很多時候我們需要進行長字符串的拆分。在振南的研發(fā)經歷中,使用到這種操作的最典型的應用場合有三個。
C語言中要表達一個字節(jié)數據序列(內存中連續(xù)存儲的若干個字節(jié)),我們可以使用字節(jié)數組,如unsigned char array[10]={0,1,2,3,4,5,6,7,8,9}。其實字符串,本質上也是一個字節(jié)序列,但是通常情況下它所存儲的字節(jié)的值均為ASCII中可打印字符的碼值,如’A’、’ ‘、’|’等。那在字符串中是否也可以出現其它的值呢?這樣,我們就可以用字符串的形式來表達一個字節(jié)序列了。很多時候,它可能比字節(jié)數組要方便一些。字符串中的轉義符就是用來干這個的。請看如下程序:
字符串是C語言中最基礎的概念,也是最常被用到的。在嵌入式開發(fā)中,我們經常要將一些字符串通過串口顯示到串口助手或調試終端上,作為信息提示,以便讓我們了解程序的運行情況;或者是將一些常量的值轉為字符串,來顯示到液晶等顯示設備上。
中斷機制在單片機及嵌入式系統中是重中之重,我們必須深入理解。首先我們要明白一點:CPU執(zhí)行指令代碼,并非一直順序地逐條執(zhí)行,而是可能突然跳到某段代碼上去的。因為這段代碼的優(yōu)先級更高,或者說它更加緊迫,CPU必須暫時放下手上的的工作,立即去執(zhí)行它,否則就可能導致不良的后果,甚至是嚴重的事故。這個“突然跳轉”有時是可以人為預見的,或者是設計人員故意使然,但有些時候卻是隨機的,無法事先斷定它發(fā)生的具體時間。這就是“中斷”最為通俗的表述,如圖1.22所示。
將“二進制”單獨拿出來作為一節(jié)來講,是因為它是一個極為基礎的概念。但是很多人對二進制并沒有形象的認識,甚至有一些已經入門、稍有開發(fā)經驗的人對它的理解仍然比較模糊。所以振南認為有必要將它以一種更為形象、通俗而又深刻的方式著重來進行闡述,以便給我們以后的學習打下堅實的基礎。
通用MCU的成功與否,產品本身PPA固然重要,但除此外很大程度上取決于開發(fā)生態(tài)。生態(tài)的繁榮可以讓其中的每一位參與者受益,當然也會反哺到MCU產品本身,影響到新的產品定義和走向。
好,有了CPU、存儲器、總線以及外設,我們把它們有機地組合封裝在一起,再把各個外設、總線的信號,以及供電和地通過引腳引出來,這就是一片完整的單片機芯片。等等,要讓單片機跑起來似乎還少了些什么?對,還有時鐘!
我們已經知道了CPU如何通過總線進行存儲器的讀寫,也知道地址總線的寬度決定了CPU的尋址空間,數據總線的寬度則決定了CPU的位數(單次能夠讀寫的數據量),而控制總線在一定程度上影響了訪存的速度(WR與RD為0的時間越短,訪存速度越快,當然也要存儲器速度跟得上才行)。有了CPU和存儲器,以及連接它們的總線,這就足以構成一個完整的、可正常運行的計算機系統。
7月3日,商務部與海關總署發(fā)布公告,決定自2023年8月1日起,依據相關法律,對鎵、鍺兩種關鍵金屬實行出口管制。這一舉措被視作對美國在半導體領域打壓中國的一種有力回應!
有移動計算的地方,就有Arm的存在。而Arm架構不斷創(chuàng)新也與移動計算的需求發(fā)展緊密綁定在了一起。近年來,計算需求變得日益復雜,Arm也從2021年開始推出全面計算解決方案(TCS:Total Compute Solutions)。通過一整套專為無縫協同工作而設計的IP組合,Arm TCS極大地降低了SoC設計復雜度,幫助SoC設計者將計算性能進一步提高。
步步緊逼的禁運究竟對中國產生多大的影響?我們應該如何突破重重封鎖實現形成半導體產業(yè)競爭優(yōu)勢?聽聽來自Gartner研究副總裁盛陵海(Roger Sheng)先生的專業(yè)見解。
瑞薩電子在汽車電氣化、智能化方面的布局。
如果把CPU看作“帝都”,存儲器看作是“衛(wèi)城”,它們之間要互通往來,就必然要修建道路,而這條道路又可以不斷延伸分支,將很多城市串連起來。這樣,城市兩兩之間便均可通行。這條“道路”就是總線!如圖1.11所示。(這些被串連起來的“城市”就猶如振南后面要講到的“CPU外設”)。
存儲器對于整個計算機系統來說是至關重要的:供CPU執(zhí)行的程序指令、程序運行過程中的變量和數據……,它們都要以存儲器作為載體。所以在實際的應用和開發(fā)中,人們總是希望單片機芯片的RAM和ROM容量能盡量大一些。這樣就可以存儲更多的代碼指令,運行規(guī)模更大更為復雜的程序。另外,存儲器本身的讀寫速度也就成為了CPU性能的最大瓶頸之一。更為形象的描述如圖1.9所示。