20150521geotail.jpg

來源出處 : http://linuxpilot.com/space-linux

地球的資源終會有耗盡的一天,為此各國都有投入資源開發太空科技。方向之一是活用Linux等開源軟體,將資源作最有效運用。在宇宙開發產業中,Linux扮演什麼角色?

轉用Linux的理由不外乎成本和安全。以國際太空站(ISS)為例,2013年5月負責管理ISS的United Space Alliance(USA),就披露ISS曾經感染病毒,因此將系統都更換為Linux。2014年1月,日本宇宙航空研究開發機構JAXA,就宣布將美日合作的太陽觀測衛星「日出」(SOLAR-B),以及磁氣圏尾部觀測衛星GEOTAIL的衛星管制功能,轉移至Linux平台上,藉此加強系統的靈活性和穩定性。

但這是否意味著Linux能在任何場景下使用呢?當然不是。例如美國的航天飛行器,採用的作業系統是Wind River公司開發的VxWorks 653,這也是中國航天飛行器系統SpaceOS的主要模仿對象。這些系統並沒有使用Linux,原因是航天飛行器的記憶體和CPU都非常的陽春。陽春到什麼程度呢?以中國天宮一號為例,其CPU速度是10MHz,記憶體只有2MB,這種配置跑Linux比較費勁,雖然也並非不可能,但如果要裁剪Linux核心才能用,就實在太麻煩了。

為什麼航天飛行器的電腦配置都這麼差?因為太空輻射、極端溫度等原因,系統首先要求的是可靠性,必須在高溫攝氏100多度、低溫攝氏零下100多度下也可正常運作。換了是一般家用電腦在這種溫度下早就掛了,所以為了對應這個極端環境,主要的硬體都被設計成很耐用的狀態,令「電腦的速度」從來都不是一個重要的指標。另外太空輻射會造成位元翻轉,頻率越高越容易被干擾,所以低頻的設計是主流

ryan0988 發表在 痞客邦 留言(3) 人氣()

Open source 常見的 toolchain,就非 gcc 和 binutils 系列莫屬。然而,商業公司提供的 toolchain,往往必需安裝在特定目錄,這總是惹惱有潔癖者,如我。然而,若將 toolchain 任意搬動位置,則會曝露 gcc 的一個缺陷,gcc 找不到其它幅程式或 library 。這是因為 gcc 假設 library 和 toolchain 會安裝在固定位置,於是在 build toolchain 時,就將這些路徑設定死。於是,對於不想重新 build toolchain,或只拿到 binary 的 user 而言,就必需使用 -nostdlib 這個參數,然後加上一堆 -I 和 -L 參數,使 gcc 能正確的找到 library 。

另外,一些 toolchain ,因為平台的因素,無法使用 gcc 預設好的參數內容。於是要強迫使用者必需下一堆固定的參數,例如: Android 就在其 build system 裡,為 gcc 設定一堆和平台相關的參數,像是 -mthumb。於是,若使用該 toolchain 自行開發軟體,就誓必要找出這些參數,並正確的設定為 gcc 的參數。這完全是一堆苦工。其實,只要作 toolchain 的人多用點心,使用 toolchain 其實可以不用這麼累。

sysroot

一般而言,gcc 會到 /usr/lib 和 /usr/include 下找 library 、 header files 和其它一些 start files 、 end files。當我們在 build gcc 設定 --prefix=/path/to/xxx ,則 gcc 安裝到 /path/to/xxx ,也在該目錄下的 lib/ 和 include/ 找 library 和 header 。旦,若裝 gcc 移到其它目錄時, gcc 會找不到這些 library 。這時,我們可以在呼叫 gcc 時,給予 --sysrooot=/new/path/to/xxx 參數。如此,gcc 就會改以 /new/path/to/xxx 為參考目錄,去搜尋所需的幅程式和 library 等。

ryan0988 發表在 痞客邦 留言(0) 人氣()

按各地址起作用的顺序,uboot引導linux核心啟動涉及到以下地址:

  1. load address:

  2. entry point: 这两个地址是mkimage时指定的

  3. bootm address:bootm为uboot的一个命令,以此从address启动kernel

ryan0988 發表在 痞客邦 留言(0) 人氣()

在编译GCC之前,先介绍一个概念——bootstrap。

bootstrap就是自己编译自己,或者说用GCC编译GCC本身。GCC的bootstrap分三个阶段,具体如下:

  1. 用系统提供的编译器编译GCC源代码,得到GCC编译器;

ryan0988 發表在 痞客邦 留言(0) 人氣()

SDHC Speed Class 2.svg
SDHC ,全名「 Secure Digital High Capacity」,是 SD卡協會

ryan0988 發表在 痞客邦 留言(0) 人氣()

Secure Digital縮寫SD,全名為Secure Digital Memory Card,中文翻譯為安全數位卡[1][2],為一種記憶卡,被廣泛地於攜帶型裝置上使用,例如數位相機個人數位助理多媒體播放器等。SD卡的技術是建基於MultiMedia卡格式上。SD卡有比較高的資料傳送速度,而且不斷更新標準。大部份SD卡的側面設有防寫控制,以避免一些資料意外地寫入,而少部分的SD卡甚至支援數位版權管理的技術。SD卡的大小為32mm × 24mm × 2.1mm,但官方標準亦有記載「薄版」1.4mm厚度,與MMC卡相同。

SD卡提供不同的速度,它是按CD-ROM的150 KB/s為1倍速(記作「1x」)的速率計算方法來計算的。基本上,它們能夠比標準CD-ROM的傳輸速度快6倍(900KB/s),而高速的SD卡更能傳輸66x(9900KB/s=9.66MB/s,標記為10MB/s)以及 133x 或更高的速度。一些數位相機需要高速SD卡來更流暢地拍攝影片,以及使得相片連拍更為迅速。直至2005年12月,大部分裝置跟從SD卡的1.01規格,而更高速至133x的裝置亦跟從1.1規格。

2006年3月發布的SDHC標準(SD 2.0),重新定義了SD卡的速度規格,分為三檔:Class 2、4、6,代表寫入速度分別為2MB/s、4MB/s、6MB/s。隨著科技的進步,有廠商生產了更高速的SDHC卡。廠商一般會直接在這些SD卡上標註速度,例如R90/W60代表讀寫速度達到每秒90MB和60MB。2010年發布了新的SD 3.0,定義了SDXCUHS,並新增了Class 10。

ryan0988 發表在 痞客邦 留言(0) 人氣()

Multi_Media_Card_front.jpg

多媒體記憶卡Multimedia CardMMC卡)是一種快閃記憶卡標準。在1997年由西門子SanDisk共同開發,技術基於東芝NAND快閃記憶技術,因此比早期基於Intel NOR快閃記憶技術的記憶卡(例如CF卡)更細小。MMC卡大小與一張郵票差不多,約24mm x 32mm x 1.5mm。

MMC卡原本使用1bit串聯接口,但較新的標準則容許同時傳送4 bit或8 bits的資料。近年MMC卡技術已差不多完全被SD卡所代替;但由於MMC卡仍可被兼容SD卡的設備所讀取,因此仍有其作用。

目前MMC卡的的容量多達 2 GB,並且用於幾乎所有使用存儲卡的設備上,如行動電話數字音頻播放機(music player)、數位相機個人數碼助理(PDA)中。由於Secure Digital的出現,幾乎沒有公司將MMC插槽做進他們的設備中,但是稍微窄一點兒的、針腳兼容(pin腳相容)的MMC卡可以用在所有支援SD卡的設備上。然而,少數一些公司,最著名的如諾基亞,仍然全部地支援MMC。

ryan0988 發表在 痞客邦 留言(0) 人氣()

CompactFlash.jpg

CompactFlashCF卡)最初是一種用於可攜式電子設備的數據儲存設備,於1994年首次由SanDisk公司生產並制定了相關規範。它的物理格式曾被多種設備所採用。從外形上CF卡可以分為兩種:CF I型卡以及稍厚一些的CF II型卡。從速度上它可以分為CF卡、高速CF卡(CF+/CF 2.0規範)、CF3.0、CF4.0,更快速的CF4.1標準也在2007年被採用。CF II型卡槽主要用於微型硬碟等一些其他的設備。

CF是與出現更早且尺寸更大的PCMCIA I型內存卡競爭的第一批快閃記憶體標準之一,它最初是建立在英特爾的NOR Flash的基礎上,之後改為使用NAND Flash。CF是最老也是最成功的標準之一,尤其在早期的專業數位相機市場。

CF卡可以透過轉接卡直接用於PCMCIA卡插槽,也可以通過讀卡器連接到多種常用的埠,如USBFirewire等。另外,由於它具有較大的尺寸(相對於較晚出現的小型存儲卡而言),大多數其他格式的存儲卡可以通過適配器在CF卡插槽上使用,其中包括SD卡MMC卡Memory Stick DuoXD卡以及SmartMedia卡等。

ryan0988 發表在 痞客邦 留言(0) 人氣()

來源出處WIKI    ->    https://zh.wikipedia.org/wiki/%E5%87%BD%E5%BC%8F%E...

電腦科學中,英語:library)是用於開發軟體子程式集合。庫和執行檔的區別是,庫不是獨立程式,他們是向其他程式提供服務的代碼。

庫連結是指把一個或多個庫包括到程式中,有兩種連結形式:靜態連結動態連結,相應的,前者連結的庫叫做靜態庫後者的叫做動態庫

ryan0988 發表在 痞客邦 留言(0) 人氣()

對於設計嵌入式Linux系統的研發人員來說,有一個問題是必須要考慮到的,那就是記憶體的空間。 我們知道嵌入式Linux系統所用的記憶體不是軟碟、硬碟、ZIP盤、CD-ROM、DVD這 些眾所周知的大容量常規記憶體,它使用的是例如Rom,CompactFlash,M-Systems的DiskOnChip,SONY的MemoryStick,IBM 的MicroDrive等體積極小,與主板上的BIOS 大小相近,存儲容量很小的記憶體。所以怎樣盡可能的節省空間就顯的很重要。 嵌入式系統的記憶體中放置的無非是核心,檔案系統,軟體,以及自己開發的程式。 本文就從程式入手,以一個非常簡單的C程式來作個例子,通過三步來讓它減肥。

Hello.c:

ryan0988 發表在 痞客邦 留言(0) 人氣()

開發板(DMA-2440L).jpg
「老師,我學嵌入式系統需要買一塊開發板嗎?」這是許多剛入門嵌入式系統的朋友,最常問的一句話。尤其從軟體業界轉行的朋友表示,他們才剛踏入嵌入式系統領域,硬體一點也不熟。一塊開發板少則 NT$4000 ~ NT$5000,多則一萬多元,實在買不下手。加上不知道哪塊開發板好?或者應該跟哪個廠商買?所以如果可以用「軟體模擬」的話,不僅省錢,也不會買了不適用而後悔。對於這樣的疑問,我都斬釘截鐵、帶著詭異的微笑、用短到對方無法接受的語句回答說:「要!」 「呃...可是...」「要!」「那...可不可以...」「不行!」滿足了自己捉弄別人的一點小小樂趣後,我會正經八百地解釋道:「學電腦不可能不上機 就學得會。就像學開車,你也不能光憑想像就考得上駕照。你可以不買車,先跟別人借車來練。但沒辦法天天對著鏡子想:『我會開車、我會開車、我會開 車...』就考上駕照。同理,你可以先跟補習班或朋友,借板子來學,但不能靠催眠來學會嵌入式系統。」

在這裡先幫某些讀者解釋一下何謂「開發板」 。某些廠商,會把目前在嵌入式業界流行的 CPU,搭配上各式各樣的周邊,做成一塊電路板,賣給嵌入式教育市場,或有志學習嵌入式系統的學生,作為實驗平台之用。這種板子,我們就稱它為「開發板」、「評估版」。英文叫做「Evaluation Board」,或簡稱「EVB」。
其實這個名詞最早來自業界。一些想推廣自家產品的晶片商,為了展現產品優點,吸引下游系統廠商使用,會自己「兜」出一塊「Demo」用的板子。雖然把產品配合其它電路,把整個系統做到好,並非晶片廠商該做之事(有點撈過界,一口氣把下游廠商該做的電路整合工作全包了)。但為了吸引買家,不得不這麼做。這就是業界口中的「評估板(EVB)」、「開發板」、或「Demo Board」。
開發板為了展示主晶片的最大能耐,通常集合了最多的周邊電路。真正的產品,會把不需要的周邊拿掉,以減低成本。不過這種情況在嵌入式教育領域,就跟業界作法相反。每位老師無不希望拿到的板子上,有最多的周邊,能夠用一塊板子教所有課程。這就是為什麼一塊開發板會貴到讓同學買不下手的原因。

ryan0988 發表在 痞客邦 留言(0) 人氣()

absolutely_anything_ver4

劇情簡介:描述遜咖中學老師尼爾(賽門佩格 飾演),偶然被外星人賦予心想事成的超能力,他不但擺脫了一班不受教的小屁孩,自己更是用超能力玩得不亦樂乎,就連愛犬阿丹都被他賦予說人話的能力,人生因此變得一帆風順,心儀的美女凱薩琳(凱特貝琴薩 飾演)也對他另眼相看。豈料,這一切都是外星人給人類的考驗,若是尼爾不能心存善念地使用他的超能力,地球就將被毀滅…。

ryan0988 發表在 痞客邦 留言(0) 人氣()

Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。