來源: UART

通用非同步收發傳輸器Universal Asynchronous Receiver/Transmitter,通常稱作UART,讀音/ˈjuːɑrt/)是一種非同步收發傳輸器,是電腦硬體的一部分,將資料由序列傳輸Serial communication)與平行傳輸Parallel communication)間作傳輸轉換。UART通常用在與其他通訊協定(如EIA RS-232)的連結上。

 

 

UART is an asynchronous communication protocol. A complete UART signal package must consists of START, DATA, Parity check, STOP, Buad, and TXD segments.
 

 

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

來源: SPI (Serial Peripheral Interface Bus) & IIC (Inter Integrated Circuit)

SPI是現在所謂的RS232功能,這種功能大都使用硬體的方式來處理,使用者只需要將速度..等參數設定好之後,對SBUF丟資料即可,這種傳輸方式最大的缺點是速度不高,最高只有119200bps,一般是拿來做控制的信號傳輸使用而已,不能夠傳大量的資料,因為很慢!這種型態可以拿來做同步雙向傳輸使用,其內部的頻率是以counter來計算的,例如頻率是9600bps,就是每 9600分之一秒自動傳送一個bit,沒有其他的信號來觸發傳送.

以上是UART而非SPI, 感謝讀者指出。

所謂I2C就是一般常見到的IIC, Inter Integrated Circuit. 最早的版本是PHILPS公司在1992所設計的串列匯流排介面,利用兩條訊號控制線來進行資料傳輸,其中兩條訊號控制線分別為:
SCL(Serial Clock) : 作為資料傳輸時的參考時脈

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

變數的宣告,會配置其所需的記憶體。每種變數所需的大小不一樣,比如說char是1 bytes,int 是4 bytes,double則是8 bytes。如果是這樣,那這些大小在記憶體中是如何擺放呢?是直覺的一個接一個放嗎?其實不然。這牽扯到performance / efficiency的問題! 在32 bits的架構上,一次的資料存取也就是32 bits (4 bytes)。而這4 bytes 不是隨便從哪個點抓都可以,而是以4 bytes為單位,不管需要的是其中那個byte,就抓那4個bytes。比如說,抓第0,4,8 ,12....等,而不會是從3,7,9開始抓4個bytes。

這代表什麼呢?這表示了對齊 (alignment)的重要,因為會影響到幾次才抓的完。如果要抓一個4 bytes 的int,而這個int是從6擺到10,那就表示要抓兩次,自然效能較差了。因此,在struct的宣告是存在對齊這件事的。見下例:

#include <stdio.h>

int main(int argc, char* argv[])

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

網路抓來的範例程式再加點小修改,client連上server後,server送"Hi client!"給client。client收到後,再回傳"receiveack"給server表示收到。

server程式:


#include <sys/types.h>
#include <sys/socket.h>

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

netdb相關程式

主要是在建立socket時,會需要一些參數,而這些參數會存在系統中,可藉由下列fucntion查詢系統的設定檔,然後餵給socket API。

介紹如下的function:

struct hostent *gethostbyname(const char *name);

struct servent *getservbyname(const char *name, const char *proto);

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

這系列是閱讀 The Linux socket TCP/IP protocols network programming tutorials所記錄的筆記,這份tutorial寫的相當好,如果有不清楚的地方,建議大家看看原文,寫的非常詳細,這裡只節錄重點。

 

Socket

1. socket是IPC所使用的一種API。

2. 也稱為Berkeley Socket或BSD Socket

3. Connection-oriented socket (TCP)

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

廢言

android 的應用程式,對我來說,都是玩票性質。為了做表面功夫,每個禮拜都有東西可以present,也只好做一些自己沒什麼興趣的事了。不過老板也有他的道理,現在不是喜不喜歡,願不願意的問題,而是在"高層"那些不懂技術的beta user的眼中,要了解自己在他們心中有沒有value。說穿了,這不只是你為公司做了多少事,牲犧了多少自我,更是你的表面功夫,嘴炮能力的高低。隨便講個比例,辛辛苦苦的完成了一個projcect,在老板眼中可能可以拿到三成的value。如果就此打住,那你就是這樣了,公司不會感謝你,不景氣的時候,你仍然是裁員名單的正取生。但如果嘴炮能力夠,懂得吹噓,才有可能拿到那佔大部份的七成。更有甚者,會有另一票完全沒辛苦過的人,會來搶這七成。這是事實,也是人性。只是得問問自己,要站在哪個點上?有多sophiticated?某種程度上,我的確是變了,讓我有點討厭自己。

 

引言

在Android 1.5 SDK提供了AppWidget的功能,因此可以在桌面上擺放各式各樣的widget。Widget的特色是interactive,包括對使用者或是framework。使用者可以暫停一個music player; framework可以定期更新widget的內容。相較於應用程式,是活潑多了! 也因為此特色,widget都應該是一個broadcast receiver,待會要介紹的,也是最陽春的widget,被強迫要深入時,再來update。

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

還是在.bashrc

需求是: 希望在一般user和root的提示符號顏色不同,並且不要提示一大串user@ubuntu等hostname什麼的。

1. unmark "force_color_prompt=yes"

2.

if [ "$color_prompt" = yes ]; then

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