LearnHouse

控制硬體

資料來源:http://silverfoxkkk.pixnet.net/blog/post/43026733-lddp%3A%E4%B8%83%E3%80%81%E6%8E%A7%E5%88%B6%E7%A1%AC%E9%AB%94

七、控制硬體
驅動程式最主要的任務 - 控制硬體。

7-1、控制硬體
驅動程式的工作,就是幫助 kernel 控制硬體,kernel 將不認識的硬體交給驅動程式控制,而驅動程式再與 kernel 溝通後,即可讓 kernel 認識硬體,如此, user process 即可透過系統呼叫介面來操作硬體。

各種硬體都有獨特的控制方式,但大多數硬體都可透過驅動程式讀寫「暫存器」來操控。
暫存器是硬體(裝置)內部的記憶空間,但屬於斷電後內容就會消失的揮發性記憶體。

驅動程式這類軟體去讀寫裝置的暫存器,也就是 CPU 去讀寫裝置,因為軟體是在 CPU 上面運行的。
具體的讀寫方式隨著裝置而有不同,一般來說可歸為「I/O mapped I/O」與「Memory mapped I/O」這兩類。

Read more...

posted by admin in 電腦&硬體 and have No Comments

認識UART、I2C、SPI三介面特性

資料來源:https://makerpro.cc/2016/07/learning-interfaces-about-uart-i2c-spi/

對專業電子工程人員而言,UART、I2C、SPI等介面及介面的差別,是可以講到非常細節的,包含邏輯信號的準位、傳輸協定中的封包格式等。

然而對不是電子工程背景的創客、自造者(Maker)而言,這些介面就比較陌生了,然而這些介面又不得不去面對,因為Arduino、Raspberry Pi開發板就有這些介面。

以Arduino而言,最原初的Arduino就有UART,而演化不久後也加添了I2C,現在無論Arduino家族開發板如何演化,多會具備UART與I2C。

而RPi方面則是從2012年最原初的RPi開始,就同時具備這三種介面,事實上Arduino開發板所用的微控制器晶片,其本身也是具備SPI介面功能的,只是Arduino將此功能掩蓋、關閉而已。 Read more...

posted by admin in 電腦&硬體 and have No Comments

Flash晶片你都認識嗎?

資料來源:https://read01.com/zh-tw/P5P8Eg.html#.WkL5ZlWWaUk

Flash存儲器,簡稱Flash,它結合了ROM和RAM的長處,不僅具備電子可擦除可編程的性能,還不會因斷電而丟失數據,具有快速讀取數據的特點;在現在琳琅滿目的電子市場上,Flash總類可謂繁多,功能各異,而你對它了解有多少呢?

為了讓大家更深入了解Flash,今天將主要根據晶片的通信協議並且結合Flash的特點,給大家一個全新認識。
Read more...

posted by admin in 電腦&硬體 and have No Comments

[Raspberry Pi 3]開機自動掛載 USB 隨身碟或外接硬碟

如果SD卡已經不夠用,剛好有很多一直沒用到的USB隨身碟,可以考慮直接掛載來增加空間
若是使用外接2.5吋隨身硬碟則需購買有提供power的才有辦法起得來,樹梅派的5v是驅動不起來的

STEP 1

如果您的 USB 隨身碟使用的檔案系統格式是 NTFS 的話,請先安裝 ntfs-3g 套件:

#apt-get install ntfs-3g

Read more...

posted by admin in Linux and have No Comments

SVN基本指令

Trunk、Tags、Branches 的差別

Trunk : 主要開發
Tags : 當要 Release 時,就標個Tag。
Branches : 當要加新功能,或是Bug fix時,將 Trunk 複制一份到 Branches 再繼續開發,之後再 Merge 回Trunk
Read more...

posted by admin in Linux and have No Comments

[Raspberry Pi 3] Ubuntu-mate 16.04 Apache, PHP 7和MySQL安裝

當初買樹梅派就是想要架一台小型不占空間,又省電的一台Server
首要工作就是把我的Blog移回來自己管理,所以LAMP(Linux, Apache, MySQL, PHP)是必要的

安裝MySQL

#apt-get -y install mysql-server mysql-client
下列的額外套件將被安裝:
libaio1 libcgi-fast-perl libcgi-pm-perl libevent-core-2.0-5 libfcgi-perl libhtml-template-perl linux-firmware mysql-client-5.7 mysql-client-core-5.7 mysql-common mysql-server-5.7
mysql-server-core-5.7
建議套件:
libipc-sharedcache-perl mailx tinyca
下列【新】套件將會被安裝:
libaio1 libcgi-fast-perl libcgi-pm-perl libevent-core-2.0-5 libfcgi-perl libhtml-template-perl mysql-client mysql-client-5.7 mysql-client-core-5.7 mysql-common mysql-server
mysql-server-5.7 mysql-server-core-5.7
下列套件將會被升級:
linux-firmware

Read more...

posted by admin in Linux and have No Comments