發表文章

Beagle Board-xM安裝ubuntu 方法一使用pre-build image

圖片
上露天買到一片便宜的Beagle Board,這篇是安裝ubuntu的筆記,有興趣的可以一起交流。 需要的工具: 一個5V 2A 2.1mm的變壓器。 5pin的USB OTG線。(也可以直接由這個供電) USB轉RS323的線,要看console debug message用的。 HDMI線,輸出到LCD。 USB滑鼠、鍵盤。 主要參考是這篇教學,若您習慣看英文的話,可以直接閱讀這篇,預計每種方法我都會試試。 reference: http://elinux.org/BeagleBoardUbuntu 首先,你需要台跑能Linux的電腦,我是用vmware裝了ubuntu。 方法一,使用Pre-build的image,這個方法比較簡單,不過對學習幫助不大,我會再試其它的方法。 a.先把image抓下來    wget http://rcn-ee.net/deb/rootfs/precise/ubuntu-12.04-r1-minimal-armhf.tar.xz c.如果你不知道你的SD卡被mount到那邊去了,你可以用以下的指令。 sudo ./setup_sdcard.sh --probe-mmc d.可以看到/dev/sdb就是SD卡囉(多餘的訊息被我省略了)。 Are you sure? I Don't see [/dev/idontknow], here is what I do see... fdisk -l: Disk /dev/sdb: 3957 MB, 3957325824 bytes <- MMC/SD card e.接下來就是把image安裝到記憶卡中,這需要一段時間大約十分鐘,這邊"beagle_xm",照不同的版子有不同的參數,參考一下print出來的指示修改就行了。 ps.在這個步驟前,script有提示我缺少某些library,照著指令下載安裝即可。 ./setup_sdcard.sh --mmc /dev/sdX --uboot "beagle_xm" f.最後把SD卡插上板子,接上鍵盤、滑鼠、HDMI。 預設的帳號、密碼。 Default user: ubuntu pass: temppwd

struct 初始化筆記

 最近在看kernel的code, 裡面常有個好用的struct初始化方式, 可以只設定自己需要的值,相當彈性。 範例如下:建立一個 struct std,在main中初始化,再利用指標函數呼叫showme,把值印出來。 (這簡單例子不考慮buffer overflow問題) struct std{ int number; char name[128]; int (*get)(struct std *p); }; void showme(struct std *p) { printf("My number is:%d name:%s \n",p->number,p->name); } int main() { struct std mystd={ .number = 39, .name = "LuLu", .get = &showme, }; //* equals struct std mystd={39,"lulu",&showme}; (*mystd.get)(&mystd); //*call showme function with mystd parameter } 執行結果: My number is:39 name:LuLu

Blog重新開張

最近又開始想寫些東西,這個blog會記錄我的遊記、一些關於嵌入系統的文章、自行車運動、 就這樣...

指標函數教學

這文章中是指標涵數的筆記,搭配上struct array是個很漂亮,又實用的方法。 指標函數用法: 回傳值型態 (*指標)(參數1,參數2) typedef void (*CMD_handler)(char *path); /*宣告point function*/ /*宣告一個arracy struct*/ typedef struct { char *CmdName; CMD_handler Cmdfunc; }CMD; /*建立CmdTable,一個CmdName對應一個function Name */ CMD CmdTable[]{ {"cfg",cmdcfg}, {"update",cmdupdate) }; for (尋訪每個element) /*blog顯示有問題所以只好用文字說明*/ if(strcmp(Cmd,CmdTable[i].Cmdname)!=0) (*(CmdTable[i].Cmdfunc)(query);

C function- Convert integer to string (non-standard function)

/* itoa example http://www.cplusplus.com/reference/clibrary/cstdlib/itoa.html*/ #include #include #include int main () { int i; char buffer [33]; printf ("Enter a number: "); scanf ("%d",&i); itoa (i,buffer,10); printf ("decimal: %s\n",buffer); itoa (i,buffer,16); printf ("hexadecimal: %s\n",buffer); itoa (i,buffer,8); printf ("Octal: %s\n",buffer); itoa (i,buffer,2); printf ("binary: %s\n",buffer); getch(); return 0; }