前言

在embedded system裡有好一些bus,而這些bus可用bank加加以分組。比如說,bank0是ROM,bank1是flash,而bank6是ram。分組的原因是其bandwidth, address space或是endian的差異。而通常系統是由bank0引導,因此bank0通常是一個ROM (多為NOR flash)。NOR flash是有些好處的,如CPU需要的random access,XIP (execute in place,不需copy到ram即可執行,但只有最前的幾個sectors),高傳輸效率 (但write/erase差)。其中XIP的功能可在系統上電後,做一些cpu/ram的initialition後,將bootloader的一部份copy到ram繼續執行剩餘的開機動作。

一個bootloader的工作內容包括: 硬體自我檢測,bank initialization,處理中斷還有最主要的,load kernel。就好像古時張良幫劉邦打天下,劉邦登上皇位後,張良便功成身退,再沒他的事。

 

stage

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

來源:  http://www.digitimes.com.tw/tw/dt/n/shwnws.asp?CnlID=10&cat=30&id=0000134347_WOQ2P3YI5WDWNT6PU5EVU&ct=2

PLL(Phase Lock Loop),照字面上解釋為鎖相迴路技術,此技術演進已有數十年歷史,以往多用來作為對產品、晶片時脈或頻率的精確控制。

基本上,任何有關頻率調諧,或是數位電子產品的時脈控制功能,都可使用PLL來設計頻率控制迴路,一方面簡化電路本身設計的複雜度,另一方面,也可增加精確性。

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

來源:影 音 壓 縮 技 術

 

壹.為何要壓縮

MPEG(Motion Pictures Expert Group)它是一個協會組織,專門定義動態畫面壓縮規格,相對於JPEG(Joint Photographic Experts Group)則是專門定義靜態畫面壓縮規格的組織;其MPEG運用的地方有很多.如通訊,廣播,電視傳播,衛星通訊,影音光碟,MP3……..等等.這裡 是針對影音光碟運用做介紹.影音光碟裡運用有,Video CD(包含卡拉OK CD),CD-I,DVD等.如果沒有MPEG提供標準的壓縮規格,我們也別想在一片薄薄的光碟片上看到這麼長的影片,在加上白皮書的標準,使我們可以在 不同系統的Player放出影片.

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

來源: Linux 使用 USB 裝置筆記

USB規格簡介

USB Univeral Serial Bus (通用串列匯流排),常見的外部匯流排,支援熱插拔 (hot plugable),一個 USB 最多可以連接127個裝置。

目前規格包括:

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

device透過bus來跟系統做communication。系統上有好幾種bus,cpu bus,pci bus等,每種bus的spec不用,因此不會隨便接。platform device是linux下,一種與cpu bus連接的機制,因此其特色就是direct addressing。其與傳統的linux device driver在資源管理上有些優勢: 藉由將自己本身的資源向kernel註冊,由kernel來做統一管理。其方式為使用platform device所提供的api,這樣在可移植性和安全性上也會有一些好處。

下面以framebuffer device做例子,說明如何註冊device與driver。

Platform device

include/linux/platform_device.h

這個檔案描述了一個device的結構,其中比較重要的是name和resource。

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

了解framebuffer driver,skeletonfb.c有著一個framebuffer基本的架構,值得參考。筆記如下:

顯卡可支援多螢幕,因此可能有多個display。而每個display可有自己的data,因此每個display都是一個framebuffer device,意即各有其fb_info。fb_info中的par是硬體相關的state,硬體只有一份,因此這些state對每個display來說是共享的。任一個display做了改變 (如resolution,var->xres和var->yres),其他的display都可得知此狀況。以下是framebuffer driver需要或不需要實作的function:

int xxxfb_init(void):

    在linux kernel 2.6後引入platform的概念,讓driver更加容易實作。這個function的功能是向platform註冊這支driver,即執行platform_driver_register()。如int __init   s3c2410fb_init(void)

static int xxxfb_open(struct fb_info *info, int user) / static int xxxfb_release(struct fb_info *info, int user):

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

來源: LCD Driver 筆記 - Frame Buffer

什麼是framebuffer 設備:
framebuffer 是一種能夠提取圖形的硬件設備,是用戶進入圖形界面很好的接口。
有了framebuffer,用戶的應用程序不需要對底層的驅動的深入瞭解就能夠做出很好的圖形。
對於用戶而言,它和 /dev 下面的其他設備沒有什麼區別,用戶可以把 framebuffer 看成一塊內存,既可以向這塊內存中寫入數據,也可以從這塊內存中讀取數據。

kezeodsnx 發表在 痞客邦 留言(1) 人氣()

來源: FCLK, HCLK, PCLK

 

因應不同的硬體元件
有不同的 clock
arm裡面

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