青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

星光燦爛

C元素

2008年4月17日

  1 int __init s3c_fb_probe(struct platform_device *pdev)
  2 {
  3     char driver_name[]="s3c_fb";
  4     int ret;
  5     int index=0;
  6 
  7     for(index=0; index<S3C_FB_NUM; index++){                   //遍歷每一個fb,我們里只有一個lcd.
  8         s3c_fb_init_fbinfo(&info[index], driver_name, index);
  9 
 10         if(index==0){                                          //操作主lcd
 11             s3c_fb_backlight_power(1);                         //開啟背光,lcd電源源,開啟背光等。           
 12             s3c_fb_lcd_power(1);
 13             s3c_fb_backlight_level(DEFAULT_BACKLIGHT_LEVEL);
 14 
 15             dprintk("dev FB init\n");
 16 
 17             //映射內存區域
 18             if (!request_mem_region((unsigned long)S3C_VA_LCD, SZ_1M, "s3c-lcd")) {
 19                 ret = -EBUSY;
 20                 goto dealloc_fb;
 21             }
 22 
 23             dprintk("got LCD region\n");
 24 
 25             //打開lcd_clock
 26             lcd_clock = clk_get(NULL, "lcd");
 27             if (!lcd_clock) {
 28                 printk(KERN_INFO "failed to get lcd clock source\n");
 29                 ret =  -ENOENT;
 30                 goto release_irq;
 31             }
 32 
 33             clk_enable(lcd_clock);
 34             printk("S3C_LCD clock got enabled :: %ld.%03ld Mhz\n", print_mhz(clk_get_rate(lcd_clock)));
 35 
 36             msleep(5);
 37         }
 38 
 39         //申請顯存
 40         /* Initialize video memory */
 41         ret = s3c_fb_map_video_memory(&info[index]);
 42         if (ret) {
 43             printk("Failed to allocate video RAM: %d\n", ret);
 44             ret = -ENOMEM;
 45             goto release_clock;
 46         }
 47         dprintk("got video memory\n");
 48 
 49         //初始化寄存器,這里與具體的設備有關。
 50         ret = s3c_fb_init_registers(&info[index]);
 51         ret = s3c_fb_check_var(&info[index].fb.var, &info[index].fb);
 52 
 53         //所謂的色表(調色盤?),不清除是干啥的。
 54         if(index<2){
 55             /* 2007-01-09-Tue. for RGB 8-8-8 palette*/
 56             if(fb_alloc_cmap(&info[index].fb.cmap, 2560)<0){
 57                 goto dealloc_fb;
 58             }
 59         }
 60         else{
 61             /* 2007-01-09-Tue. for RGB 8-8-8 palette*/
 62             if(fb_alloc_cmap(&info[index].fb.cmap, 160)<0){
 63                 goto dealloc_fb;
 64             }
 65         }
 66         //注冊framebuffer??
 67         ret = register_framebuffer(&info[index].fb);
 68         if (ret < 0) {
 69             printk(KERN_ERR "Failed to register framebuffer device: %d\n", ret);
 70             goto free_video_memory;
 71         }
 72     }//     for(index=0; index<CONFIG_FB_NUM; index++)
 73 
 74     //    initialize the struct for Waitforvsync
 75     // 關于中斷的初始化工作,貌似2412是注冊以后又取消了
 76     s3cfb_vSyncInfo.count = 0;
 77     init_waitqueue_head(&s3cfb_vSyncInfo.waitQueue);
 78 
 79 #if defined(CONFIG_ARCH_S3C2443)
 80     ret = request_irq(IRQ_LCD3, s3c_fb_irq, 0"s3c-lcd", pdev);
 81 #elif defined(CONFIG_ARCH_S3C6400)
 82     ret = request_irq(IRQ_LCD_VSYNC, s3c_fb_irq, 0"s3c-lcd", pdev);
 83 #elif defined (CONFIG_S3C_DVS) && defined (CONFIG_ARCH_S3C2412)
 84     ret = request_irq(IRQ_LCD, s3c_dvs_irq, 0"s3c-lcd", pdev);
 85 #endif
 86     if (ret != 0) {
 87         printk("Failed to install irq (%d)\n", ret);
 88         goto release_irq;
 89     }
 90 
 91 #if defined (CONFIG_S3C_DVS) & defined (CONFIG_ARCH_S3C2412)
 92     disable_irq(IRQ_LCD);
 93 #endif
 94 
 95     //在sys底下建立節點,用于和用戶空間交互
 96     /* create device files */
 97     device_create_file(&(pdev->dev), &dev_attr_backlight_power);
 98     device_create_file(&(pdev->dev), &dev_attr_backlight_level);
 99     device_create_file(&(pdev->dev), &dev_attr_lcd_power);
100 
101     //勝利退出
102     printk(KERN_INFO "fb%d: %s frame buffer device\n",
103         info[index].fb.node, info[index].fb.fix.id);
104     return 0;
105 
106 free_video_memory:
107     s3c_fb_unmap_video_memory(&info[index]);
108 
109 release_clock:
110     clk_disable(lcd_clock);
111     clk_put(lcd_clock);
112 
113 release_irq:
114 #if defined(CONFIG_ARCH_S3C2443)
115     free_irq(IRQ_LCD3, &info);
116 #elif defined(CONFIG_ARCH_S3C6400)
117     free_irq(IRQ_LCD_VSYNC, &info);
118 #endif
119     //release_mem:
120     release_mem_region((unsigned long)S3C_VA_LCD, S3C_SZ_LCD);
121 
122 dealloc_fb:
123     framebuffer_release(&info[index].fb);
124     return ret;
125 }
126 
127 
128 

posted @ 2008-04-17 12:52 菌子 閱讀(924) | 評論 (0)編輯 收藏

2008年3月6日

 

第二章 從內核出發

 

內核開發特點:

  1. 沒有libc庫。 kernel是一個不依賴任何庫的,包括標準C函數庫。kernel中使用的一些常見函數,比如memset, strcpy都是在kernel代碼中自己實現的。
  2. 請使用gcc來編譯內核,因為內核中的代碼并不完全符合ANSI C的標準。
  3. 沒有內存保護,非法的內存操作可能會使系統掛起。
  4. 不要使用浮點數
  5. 內核棧容量很小( 2 * 頁面大小 )
  6. linux是搶占多任務操作系統,進程,內核都可以搶占,而且支持多處理器,所以內核代碼需要考慮并發和同步的問題。
  7. 盡量要兼容所有架構(arch),良好的移植性

 

 

 

第三章 進程管理

 

內存描述符及任務結構

  1. 每個進程都對應有一個進程描述符,即task_struct結構,用來記錄這個進程的所有信息:打開的文件,地址空間,進程狀態……
  2. linux通過slab(個人感覺類似于pool)分配task_struct。 進程的task_struct指針存放在位于內核棧底的一個叫做thread_info的結構里面。
  3. 內核通過PID來標識進程,默認設置最大值,即默認系統最大進程數為32768。內核中一般通過current宏來獲的當前進程的task_struct,不同的體系架構下,實現方法可能會不同。
  4. 進程狀態,可以通過set_task_state來設置
    1. TASK_RUNNING 進程可執行;它正在運行,或者是在任務隊列中等待被運行。
    2. TASK_INTERRUPTIBLE 進程可中斷;進程被阻塞,但是可以通過信號,或者其他方法喚醒。
    3. TASK_UNINTERRUPTIBLE 進程不可中斷;進程被阻塞,而且不受任何干擾,不會響應信號而被喚醒。
    4. TASK_ZOMBIE 進程僵死;進程已經運行完畢,但是父進程沒有調用wait4系統調用,此時子進程的task_struct保留,等待父進程查詢相關信息。【Agaric:相似的,在windows上,進程的HANDLE通過(CreateProcess或者OpenProcess得到) 在程序運行完畢后,在CloseHandle 前,也是仍然有效,用于查詢進程相關信息,比如Exit code 等等】
    5. TASK_STOPPED 進程停止;
  5. 進程上下文: 進程通過系統調用或者異常陷入內核,此時內核是"代表進程"在工作,這個工作環境,叫做進程上下文,內核程序可以通過宏來獲的當前進程的task_struct
  6. 進程家族樹: 除了init,每個進程都有父進程, 每個進程都可能有子進程及兄弟進程。

(待續)

posted @ 2008-03-06 00:00 菌子 閱讀(1809) | 評論 (7)編輯 收藏

2008年3月1日


配置svnserver

可以直接在YaST2里面,在xinetd設置里面,添加svnserve的選項。
但是要注意運行使用的用戶,默認的svn:svn是沒有被建立的, 我改成nobody以后就ok了,但不知道有什么什么問題。


配置APACHE

采用svnserver的方法有許多不便,所以我還是決定最終采用http的方法。
OpenSuse的apache2的配置文件布局似乎和其他系統有點不一樣。 它在httpd.conf里面并沒有直接進行的配置,而是包含了其他很多的conf文件,其中的每一個conf,包含了某一個具體部分的配置。

ls /etc/apache2/

charset.conv         httpd.conf   mod_autoindex-defaults.conf  mod_status.conf     ssl.crl          ssl.key      vhosts.d
conf.d               listen.conf  mod_info.conf                mod_userdir.conf    ssl.crt          ssl.prm
default-server.conf  magic        mod_log_config.conf          mod_usertrack.conf  ssl.csr          sysconfig.d
errors.conf          mime.types   mod_mime-defaults.conf       server-tuning.conf  ssl-global.conf  uid.conf

配置svn 使用 apache 的文章很多,我就不重復具體的配置方法了,只是說明一下在suse10.3上具體需要修改的文件。
/etc/apache2/conf.d/subversion.conf    這個文件被httpd.conf所包含,用來修改svn目錄及一些設置,一般教程里面都是修改httpd.conf.
/etc/apache2/sysconfig.d/loadmodule.conf 用來在apache啟動時加載模塊用。

我最終解決mod_dav_svn加載的方法是,在/usr/lib/apache2-prefork/ 下建立一個 mod_dav_svn.so的鏈接(位于 /usr/lib/apache2)這樣在YaST的httpserver設定里面就可以選擇和加載這個模塊了。 就是這個問題,花了我好幾個消失來解決。

其他的配置方法,可以參考svn中文手冊,和網上其他的配置教程。
 







    


posted @ 2008-03-01 17:08 菌子 閱讀(700) | 評論 (0)編輯 收藏

2008年2月2日

http://blog.chinaunix.net/u1/34474/showart_404278.html

http://blog.chinaunix.net/u1/41638/showart_438078.html

http://blog.csdn.net/fudan_abc/

posted @ 2008-02-02 23:41 菌子 閱讀(240) | 評論 (0)編輯 收藏

2008年1月28日

 

我使用的不是SMDK2412的開發板,而是公司已經出貨的2412的機器,原來用的是自己的一個OS,現在打算在他上面運行linux.

編譯2.6的內核,需要比較新的gcc, 我暫時能找到的新版arm-linux-gcc也就是3.4.1。,之前用arm-none-linux-eabi-gcc 4.1編出來的zImage好大,基本不能用。對于開發工具和內核版本,我覺得還是越新越好(穩定版),否則可能會遇到一些稀奇古怪的問題。

1.修改Boot

使用公司原有的Boot, 在Boot啟動Kernel的時候,加入的參數設定,然后用公司專用的usb更新工具燒錄kernel到flash中,啟動機器以后顯示了一堆亂碼,在啟動參數 console=ttySAC0后面加上了,115200,設定波特率以后一切OK.

2.MTD分區:修改文件common-smdk.c , 修改其中的MTD設備的分區。

新的kernel里面已經有了默認分區表,我們只要根據我們需要來做部分修改就可以,我的nand有512MB, 我目前只是將前面的2M分給boot,kernel, 緊接下來的4M分給rootfs,打算暫時加載一個 簡單的cramfs。其他的nand都還沒有用。

3.取消NAND驅動中的ECC讀校驗,以及壞塊監測部分, 因為NAND操作部分,boot和kernel有一些不同。

重啟以后,mount root分區失敗,還打出了I/O 錯誤。 關閉了ECC校驗,修改了pc工具的燒錄地址以后,ok. 這都是因為我們的燒錄工具使用的地址表示方法和ecc的方式有一些不同。

4.燒錄 root 文件系統。

拿了一個在kernel2.4 2440 上用過得cramfs直接來用,提示找不到dev/console, 上網查了一遍,應該是因為現在新版的kernel去掉了devfs的緣故,為了先快速的有一個可執行環境,所以在網上找了一個現成的,已經自己建立好節點的cramfs,里面的busybox版本也比較新。

 

開機運行,總算見到了親愛的shell.

posted @ 2008-01-28 23:30 菌子 閱讀(1179) | 評論 (2)編輯 收藏

2008年1月14日

工作需要,加之好奇心,終于給自己家的PC里面也安裝上了Linux。 為了和公司的OpenSuse有所不同于是就選擇另一款大名頂頂的發行版Fedora.

我一直認為,人生總是要遇到一些挫折的。 可不就是裝個系統嘛,為啥就要這樣難為我捏?

懶得插上光驅,于是就用硬盤安裝的辦法。 可grub for dos 就是不認我從ISO里解出來的vmlinuz, 汗,放狗去搜,貌似沒有人遇到過這個情況。不能就這樣放棄吧?再看看解壓出來的一個jpg,居然也打不開,nnd是不是文件解錯了。 之前我解文件用的是winrar, 換成 Deamon Tools 試試, NND 這次那附圖OK了。 再用grub來load , OK! 額。。 原來winrar在解iso的時候會掉鏈子, 伙計們以后要千萬小心。

以后的事就順利多了。  裝顯卡驅動,直接用yum的包就可以啦,不過裝完以后需要修改grub的list,因為內核也更新了,需要從新的內核啟動,顯卡驅動才可以奏效。Fedora默認已經安裝了桌面特效,顯卡驅動安裝完以后,直接在菜單里面選擇打開特效就OK. 嘿嘿,效果還可以吧。

 


接下來就是解決QQ滴問題了。 開始用Pigin,只能聊天,而且只能看見在線的好友,勉強能用,后來又裝了wine上面的qq2007,應該是配置的問題,總是crash。 不過最后發現了lumaQQ和eva這兩個好東東。 我本人還是比較喜歡eva的,功能很全了,界面也很友好,只可惜這個家伙不能像其他的一些KDE程序在gnome下也能正常運行,只能在KDE下玩兒。LumaQQ作者現在主要在維護iphone版本的, 普通的java版有一段時間沒更新了, 現在還能常用, 界面也還好。

這幾天綜合下來,感覺Fedora還算不錯,但是易用性上面,不如Opensuse。 至于 ubuntu , 我用的不多, 感覺優點是國內源多,所以更新和下載程序速度比較快。

工作的任務是一直Linux內核,現在看來,還有很多東西要學,很多路要走。

我覺得對于這樣比較長期/艱巨的任務,相我這樣工作經驗不豐富的人,很難針對它來指定一個計劃, 其實就是很難將其分割成一步步來完成的小計劃。導致每天都暈暈呼呼的不知道干什么好。 希望有經驗的朋友能給點建議。


Winrar解ISO可能會掉鏈子

對Linux有興趣的初學者,不妨親身在機器上安裝一個易用的發行版(非虛擬機, 推薦Ubuntu, Opensuse10.3(KDE))
posted @ 2008-01-14 23:50 菌子 閱讀(1006) | 評論 (2)編輯 收藏

2007年12月23日

MIT   BBS上說微軟電話面試的一道題就是“Who   do   you   think   is   the   best   coder,   and   why?”。我覺得挺有意思的,也來湊個熱鬧。排名不分先后。

Bill   Joy,   前任Sun的首席科學家,當年在Berkeley時主持開發了最早版本的BSD。他還是vi和csh的作者。當然,Csh   Programming   Considered   Harmful   是另一個話題樂。據說他想看看自己能不能寫個操作系統,就在三天里寫了個自己的Unix,     也就是BSD的前身。當然是傳說了,但足見他的功力。另一個傳說是,1980年初的時候,DARPA讓BBN在Berkley   Unix里加上BBN開發的TCP/IP代碼。但當時還是研究生的B伯伯怒了,拒絕把BBN   TCP/IP加入BSD,因為他覺得BBN的TCP/IP寫得不好。于是B伯伯出手了,端的是一箭封喉,很快就寫出了高性能的伯克利版TCP/IP。當時   BBN和DARPA簽了巨額合同開發TCP/IP   Stack,誰知他們的代碼還不如一個研究生的好。于是他們開會。只見當時B伯伯穿個T-shirt出現在會議室(當時穿T-shirt不象現在,還是相 當散漫的哈)。只見BBN問:你怎么寫出來的?而B伯伯答:簡單,你讀協議,然后編程就行了。最令偶暈倒的是,B伯伯碩士畢業后決定到工業界發展,于是就 到了當時只有一間辦公室的Sun,   然后他就把Sparc設計出來樂。。。象這種軟硬通吃的牛人,想不佩服都不行的說。據Bill   Joy的同事說,一般開會的時候B伯伯總是拿一堆雜志漫不經心地讀。但往往在關鍵之處,B伯伯發言,直切要害,提出漂亮的構想,讓同事們徹底崩潰。對了, 他還是Java   Spec和JINI的主要作者之一。


John   Carmack,ID   Software的founder和Lead   Programmer。上個月和一個搞圖形的師兄聊天,他竟然不知道John   Carmack,   也讓偶大大地暈了一把。不過也許搞研究的和搞實戰的多少有些隔吧。想必喜歡第一人稱射擊游戲的都知道J哥哥。90年代初只要能在PC上搞個小動畫都能讓人 驚嘆一番的時候,J哥哥就推出了石破天驚的Castle   Wolfstein,   然后再接再勵,doom,   doomII,   Quake...每次都把3-D技術推到極
限。J哥哥的簡歷上說自己的專長是"Exhaust   3-D   technology",真是牛人之言不我欺的說。做J哥哥這樣的人是很幸福的,因為各大圖形卡廠家一有了新產品就要向他“進貢”   ,不然如果他的游戲不支持哪種卡,哪種卡基本就會夭折樂。當初MS的Direct3D也得聽取他的意見,修改了不少API。當然,J哥哥在結婚前十數年如 一日地每天編程14小時以上,也是偶們凡人望塵莫及的。對了,J哥哥高中肆業(?),可以說是自學成才。不過呢,誰要用這個例子來為自己學習不好辯護,就 大錯特錯了。那   Leonardo   Da   Vinci還是自學成才呢(人是私生子,不能上學)。普通人和天才還是有區別的。對了,其實偶們叫“達分奇”是相當不對的,因為Vinci是地名,而Da   Vinci就是從Vinci來的人的意思。換句話說,Leonardo   Da   Vinci就是“從Vinci來的Leonardo”的意思。叫別人“Da   Vinci”就不知所謂樂。嗯,扯遠了,打住。

David   Cutler,VMS和Windows   NT的首席設計師,去微軟前號稱硅谷最牛的kernel開發員。當初他和他的手下在微軟一周內把一個具備基本功能的bootable   kernel寫出來,然后說:“who   can't   write   an   OS   in   a   week?",也是牛氣沖天的說。順便說一句,D爺爺到NT3.5時,管理1500名開發員,自己還兼做設計和編程,不改coder本色啊。

D爺爺天生脾氣火爆,和人爭論時喜歡雙手猛擊桌子以壯聲勢。:-)   日常交談F-word不離口。他面試秘書時必問:"what   do   you   think   of   the   word   'fuk'?"   ,讓無數美女剎羽而歸。終于有一天,一個同樣火爆的女面對這個問題脫口而出:"That's   my   favorite   word"。于是她被錄取樂,為D爺爺工作到NT3.5發布。

Don   Knuth。高爺爺其實用不著偶多說。學編程的不知道他就好像學物理的不知道牛頓,學數學的不知道歐拉,學音樂的不知道莫扎特,學Delphi的不知到   Anders   Hejlsberg,或者學Linux不知道Linus   Torvalds一樣,不可原諒啊。:-)為了讓文章完整,就再羅唆幾句吧。高爺爺本科時就開始給行行色色的公司寫各種稀奇古怪的編譯器掙外快了。他賣給 別人時收一兩千美元,那些公司拿了code,加工一下賣出去就是上萬上十萬。不過也沒見高爺爺不爽過,學者本色的說。想想那可是60年代初啊,高爺爺寫編 譯器寫多了,順帶就搞出了個Attribute   Grammar和LR(k),大大地造福后人啊。至于高爺爺在CalTech的編程比賽(有Alan   Kay得眾多高高手參加)總是第一,寫的Tex到86年就code   freeze,還附帶2^n美分獎勵等等都是耳熟能詳的,偶就不饒舌樂。

順便說一下,高老大爺是無可爭議的寫作高手。他給Concrete   Mathematics   寫的前言可謂字字鏗鏘,堪為前言的典范。他的技術文章也是一絕,文風細致,解釋精當,而且沒有學究氣,不失輕快跳脫。記得幾年前讀Concrete   Mathemathics,時不時開懷大笑,讓老媽極其郁悶,覺得我nerdy到家,不可救藥。其實呢,子非魚,安知魚之樂,更不知那完全是高爺爺的功 勞。說到寫作高手,不能不提Stephen   A.   Cook。他的文章當年就被我們的寫作老師極力推薦,號稱典雅文風的樣本。庫爺爺一頭銀發,身材頎長,總是面帶謙和的微笑,頗有仙風道骨,正好和他的仙文 相配的說。

高爺爺其實還是開源運動的先驅。雖然他沒有象Richard   Stallman那樣八方奔走,但他捐獻了好多作品,都可以在網上看到,比如著名的Mathematical   Writing,MMIXWare,The   Tex   Book等,更不用說足以讓他流芳百世的Tex樂。

Ken   Thompson,C語言前身B語言的作者,Unix的發明人之一(另一個是Dennis   M.   Riche老大,被尊為DMR),Belle(一個厲害的國際象棋程序)的作者之一,   操作系統Plan   9的主要作者(另一個是大牛人Rob   Pike,   前不久被google挖走了)。Ken爺爺也算是計算機歷史上開天辟地的人物了。1969年還是計算機史前時代,普通人都認為只有大型機才能運行通用的操 作系統,小型機只有高山仰止的份兒。至于用高級語言來寫操作系統,更是笑談。Ken爺爺自然不是池中物,于是他和DMR怒了,在1969年到1970間用 匯編在PDP-7上寫出了UNIX的第一個版本。他們并不知道,一場轟轟烈烈的UNIX傳奇由此拉開了序幕。Ken爺爺在1971年又把Unix用C重 寫,于是C在隨后20年成就了不知多少豪杰的夢想和光榮。

Ken爺爺還有段佳話:   裝了UNIX的PDP-11最早被安裝在Bell   Lab里供大家日常使用。很快大家就發現Ken爺爺總能進入他們的帳戶,獲得最高權限。Bell   Lab里的科學家都心比天高,當然被搞得郁悶無比。于是有高手怒了,跳出來分析了UNIX代碼,找到后門,修改代碼,然后重新編譯了整個UNIX。就在大 家都以為“這個世界清凈了”的時候,他們發現Ken爺爺還是輕而易舉地拿到他們的帳戶權限,百思不解后,只好繼續郁悶。誰知道這一郁悶,就郁悶了14年, 直到Ken爺爺道出個中緣由。原來,代碼里的確有后門,但后門不在Unix代碼里,而在編譯Unix代碼的C編譯器里。每次C編譯器編譯UNIX的代碼, 就自動生成后門代碼。而整個Bell   Lab的人,都是用Ken爺爺的C編譯器。:D
posted @ 2007-12-23 00:39 菌子 閱讀(428) | 評論 (0)編輯 收藏

2007年12月5日

多新手學習嵌入式系統,不清楚那么多方向舵知識和參考書,該從哪里開始學習。入手了,卻又在該先學習什么后學習什么上失去方向。這里有你想要的答案,幫你指點迷經。

這是我在ITjob培訓網上找到的課程大綱,覺得作為嵌入式系統開發的學習步驟,按部就班地去施行和學習,到不失為一種好的學習方法:)

就算是作為參考也是有很好的價值的!

隨著現代社會信息化進程的加快,嵌入式系統被廣泛的地應用于軍事、家用、工業、商業、辦公、醫療等社會各個方 面,表現出很強的投資價值。從國際范圍來看,作為數字化電子信息產品核心的嵌入式系統目前其硬件和軟件開發工具市場已經突破2000億美元,嵌入式系統帶 來的全球工業年產值更是達到了一萬億美元,隨著全球經濟的持續增長以及信息化的加速發展,嵌入式系統市場必將進一步增長。
本課程是為了適應目前發展迅速的嵌入式Linux需求而設計,課程目標是讓學員達到適應嵌入式應用軟件開發、嵌入式系統開發或嵌入式驅動開發的基本素質。 課程循序漸進的帶領您嵌入式開發的世界,采用了目前應用最廣泛的軟硬件開發平臺(LinuxArm),可以保證您盡量貼近目前企業需求。

學習步驟如下:(一步步來哦:)


1、Linux
基礎

安裝Linux操作系統
Linux
文件系統
Linux
常用命令
Linux
啟動過程詳解
熟悉Linux服務 能夠獨立安裝Linux操作系統
能夠熟練使用Linux系統的基本命令
認識Linux系統的常用服務 安裝Linux操作系統
Linux
基本命令實踐
設置Linux環境變量
定制Linux的服務 Shell 編程基礎 使用vi編輯文件
使用Emacs編輯文件
使用其他編輯器


2、Shell 編程基礎

Shell簡介
認識后臺程序
Bash
編程 熟悉Linux系統下的編輯環境
熟悉Linux下的各種Shell
熟練進行shell編程 熟悉vi基本操作
熟悉Emacs的基本操作
比較不同shell的區別
編寫一個測試服務器是否連通的shell腳本程序
編寫一個查看進程是否存在的shell腳本程序
編寫一個帶有循環語句的shell腳本程序


3、Linux 下的 C 編程基礎

linux C語言環境概述
Gcc
使用方法
Gdb
調試技術
Autoconf
Automake
Makefile
代碼優化 熟悉Linux系統下的開發環境
熟悉Gcc編譯器
熟悉Makefile規則 編寫Hello,World程序
使用 make命令編譯程序
編寫帶有一個循環的程序
調試一個有問題的程序


4、嵌入式系統開發基礎

嵌入式系統概述
交叉編譯
配置TFTP服務
配置NFS服務
下載Bootloader和內核
嵌入式Linux應用軟件開發流程
熟悉嵌入式系統概念以及開發流程
建立嵌入式系統開發環境 制作cross_gcc工具鏈
編譯并下載U-boot
編譯并下載Linux內核
編譯并下載Linux應用程序


4、嵌入式系統移植

Linux內核代碼
平臺相關代碼分析
ARM
平臺介紹
平臺移植的關鍵技術
移植Linux內核到 ARM平臺 了解移植的概念
能夠移植Linux內核 移植Linux2.6內核到 ARM9開發板


5、嵌入式 Linux 下串口通信

串行I/O的基本概念
嵌入式Linux應用軟件開發流程
Linux
系統的文件和設備
與文件相關的系統調用
配置超級終端和MiniCOM 能夠熟悉進行串口通信
熟悉文件I/O 編寫串口通信程序
編寫多串口通信程序


6、嵌入式系統中多進程程序設計

Linux系統進程概述
嵌入式系統的進程特點
進程操作
守護進程
相關的系統調用 了解Linux系統中進程的概念
能夠編寫多進程程序 編寫多進程程序
編寫一個守護進程程序
sleep
系統調用 任務管理、同步與通信 Linux任務概述
任務調度
管道
信號
共享內存
任務管理 API 了解Linux系統任務管理機制
熟悉進程間通信的幾種方式
熟悉嵌入式Linux中的任務間同步與通信
編寫一個簡單的管道程序實現文件傳輸
編寫一個使用共享內存的程序


7、嵌入式系統中多線程程序設計

線程的基礎知識
多線程編程方法
線程應用中的同步問題 了解線程的概念
能夠編寫簡單的多線程程序 編寫一個多線程程序


8、嵌入式 Linux 網絡編程

網絡基礎知識
嵌入式LinuxTCP/IP網絡結構
socket
編程
常用 API函數
分析Ping命令的實現
基本UDP套接口編程
許可證管理
PPP
協議
GPRS
了解嵌入式Linux網絡體系結構
能夠進行嵌入式Linux環境下的socket 編程
熟悉UDP協議、PPP協議
熟悉GPRS 使用socket 編寫代理服務器
使用socket 編寫路由器
編寫許可證服務器
指出TCPUDP的優缺點
編寫一個web服務器
編寫一個運行在 ARM平臺的網絡播放器


9、GUI 程序開發

GUI基礎
嵌入式系統GUI類型
編譯QT
進行QT開發 熟悉嵌入式系統常用的GUI
能夠進行QT編程 使用QT編寫“HelloWorld”程序
調試一個加入信號/槽的實例
通過重載QWidget 類方法處理事件


10、Linux 字符設備驅動程序

設備驅動程序基礎知識
Linux
系統的模塊
字符設備驅動分析
fs_operation
結構
加載驅動程序 了解設備驅動程序的概念
了解Linux字符設備驅動程序結構
能夠編寫字符設備驅動程序 編寫Skull驅動
編寫鍵盤驅動
編寫I/O驅動
分析一個看門狗驅動程序
對比Linux2.6內核與2.4內核中字符設備驅動的不同
Linux
塊設備驅動程序 塊設備驅動程序工作原理
典型的塊設備驅動程序分析
塊設備的讀寫請求隊列 了解Linux塊設備驅動程序結構
能夠編寫簡單的塊設備驅動程序 比較字符設備與塊設備的異同
編寫MMC卡驅動程序
分析一個文件系統
對比Linux2.6內核與2.4內核中塊設備驅動的不同


11、文件系統

虛擬文件系統
文件系統的建立
ramfs
內存文件系統
proc
文件系統
devfs
文件系統
MTD
技術簡介
MTD
塊設備初始化
MTD
塊設備的讀寫操作 了解Linux系統的文件系統
了解嵌入式Linux的文件系統
了解MTD技術
能夠編寫簡單的文件系統 為 ARM9開發板添加 MTD支持
移植JFFS2文件系統
通過proc文件系統修改操作系統參數
分析romfs 文件系統源代碼
創建一個cramfs 文件系統

posted @ 2007-12-05 22:03 菌子 閱讀(491) | 評論 (0)編輯 收藏

2007年12月4日

 

轉眼間,從事程序員這一行已經兩年半了。

記得上中學的時候,剛接觸了電腦,在體驗了Windows得神奇以后,我就開始立志,希望將來能成為一個軟件工程師。那時,在我的每本課本得第一頁,除了會寫上我自己的名字以外,還會有一行用鋼筆寫下的黑體字 “我的未來,我的Microsoft” 。

大學畢業以后進入一家普通的軟件公司,渾渾噩噩得過著Coding & Debug 的日子。不知道工作是為了誰,也不知道工作是為了什么,只知道我只是一個程序員。人沒有目標和理想,就是行尸走肉,而我,就是這樣一個臭皮囊,已經恍惚了這么多年。

有一天,終于又重新打開求職的網頁,又看到了那個從前在心目中無比神圣的Logo,那個永遠的Microsoft。

我終于明白了那時的夢想。其實我真正想要的,就是能夠像Microsoft一樣,能夠被更多的人需要,能夠對人們的生活有積極得影響,這才是我工作和人生的價值。

覺得為時已晚的時候,恰恰是最早的時候。

還好,我還年輕。

我的未來,我的Microsoft。

posted @ 2007-12-04 22:45 菌子 閱讀(304) | 評論 (0)編輯 收藏

2007年8月18日

 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 

posted @ 2007-08-18 12:51 菌子 閱讀(660) | 評論 (5)編輯 收藏
僅列出標題  下一頁

導航

<2008年4月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

統計

常用鏈接

留言簿(8)

隨筆分類

隨筆檔案

令一片星空

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲午夜av在线| 亚洲狼人精品一区二区三区| 欧美一级播放| 亚洲一区免费| 国产日韩欧美一区二区| 久久久久国产一区二区三区| 久久成人一区二区| 亚洲日韩中文字幕在线播放| 亚洲欧洲精品一区| 欧美日韩亚洲天堂| 欧美一区免费视频| 久久久久在线观看| 99视频在线精品国自产拍免费观看| 91久久精品国产91久久性色tv| 欧美午夜精品一区| 欧美第一黄色网| 日韩视频在线一区二区三区| 一本在线高清不卡dvd| 欧美日韩三级一区二区| 日韩视频在线一区二区三区| 久久久xxx| 久久超碰97中文字幕| 亚洲黄一区二区三区| 99天天综合性| 国产精品h在线观看| 久久久久久一区二区| 欧美大片免费| 亚洲综合色自拍一区| 久久免费99精品久久久久久| 一区二区三区高清视频在线观看| 亚洲欧美日本日韩| 亚洲国产成人午夜在线一区| 中日韩美女免费视频网站在线观看| 国内自拍亚洲| 在线亚洲精品| 日韩视频免费在线| 欧美一区1区三区3区公司| 日韩视频久久| 久久伊人免费视频| 亚洲欧美国产毛片在线| 老巨人导航500精品| 久久久久.com| 欧美三区在线视频| 亚洲国产精品成人一区二区 | 一区二区三区|亚洲午夜| 伊人久久婷婷| 午夜视频一区在线观看| 亚洲素人在线| 欧美精品成人一区二区在线观看 | 在线观看视频一区| 久久精品30| 久久福利精品| 国产精品有限公司| 亚洲香蕉成视频在线观看| 一本色道久久综合亚洲精品不| 久久夜色撩人精品| 你懂的网址国产 欧美| 国产一区二区三区高清播放| 中文国产成人精品久久一| 亚洲特色特黄| 欧美日韩一区精品| 一本一本久久| 亚洲资源av| 欧美午夜电影在线| 一区二区三区欧美在线| 亚洲视频网站在线观看| 欧美日韩喷水| 国产精品99久久久久久久久久久久| 99视频+国产日韩欧美| 欧美人成在线| 一区二区三区四区国产| 西瓜成人精品人成网站| 欧美视频精品在线| 激情综合网址| 欧美在线观看天堂一区二区三区| 亚洲永久在线| 国产精品一区二区在线| 亚洲欧美日韩国产一区二区| 久久精品女人天堂| 亚洲国产精品va在看黑人| 久久躁狠狠躁夜夜爽| 亚洲国产免费| 亚洲图片在区色| 国产欧美另类| 久久免费精品日本久久中文字幕| 美女精品网站| 亚洲免费成人av电影| 欧美性猛交xxxx乱大交蜜桃| 亚洲免费中文字幕| 麻豆成人综合网| 亚洲蜜桃精久久久久久久| 国产精品露脸自拍| 久久久久欧美精品| 日韩视频久久| 久久精品五月婷婷| 亚洲精品影院在线观看| 国产农村妇女精品一二区| 久久这里有精品15一区二区三区 | 亚洲小视频在线观看| 国产精品丝袜久久久久久app| 久久九九精品| 亚洲美女中出| 可以看av的网站久久看| 一本综合精品| 一区二区视频欧美| 国产精品a久久久久久| 老司机午夜免费精品视频| 亚洲午夜电影在线观看| 欧美不卡视频一区发布| 亚洲欧美卡通另类91av | 国产精品一页| 欧美黄色免费网站| 欧美自拍偷拍午夜视频| 一区二区三区久久网| 亚洲第一搞黄网站| 久久黄金**| 亚洲欧美激情诱惑| 99re热这里只有精品免费视频| 国内一区二区三区| 国产精品网站一区| 欧美日韩国产美| 蜜臀久久久99精品久久久久久| 中文日韩在线| 亚洲精品资源美女情侣酒店| 六月丁香综合| 久久蜜桃香蕉精品一区二区三区| 亚洲欧美日韩在线观看a三区| 亚洲国产免费看| 狠狠干综合网| 国产亚洲精品成人av久久ww| 国产精品久久精品日日| 欧美激情亚洲| 欧美黄免费看| 欧美高清视频在线播放| 美国成人毛片| 久久久久久夜| 久久久噜噜噜久久中文字幕色伊伊 | 欧美日韩一区在线视频| 欧美国产视频在线| 免费短视频成人日韩| 免费成年人欧美视频| 亚洲国产精品电影| 久久久久久久尹人综合网亚洲| 亚洲淫性视频| 亚洲免费一区二区| 亚洲精品一区二区在线观看| 亚洲国产精品久久久久久女王| 免费一区二区三区| 欧美国产亚洲另类动漫| 亚洲国产精品悠悠久久琪琪| 欧美激情一二三区| 亚洲人成在线播放| 日韩午夜av电影| 亚洲男女自偷自拍| 久久国产精品免费一区| 久久久精品性| 欧美成人三级在线| 欧美日韩精品一本二本三本| 欧美三级黄美女| 国产精品午夜在线| 激情伊人五月天久久综合| 在线成人av网站| 亚洲精品综合精品自拍| 亚洲一区二区三区777| 欧美在线啊v一区| 免费在线国产精品| 亚洲精品在线三区| 亚久久调教视频| 免费亚洲一区二区| 国产精品国产自产拍高清av王其 | 久久精品观看| 欧美日韩大片| 国产一区二区久久| 最近中文字幕日韩精品| 午夜精品一区二区三区在线播放 | 欧美国产综合一区二区| 亚洲黄色一区二区三区| 亚洲综合丁香| 欧美成人精品在线播放| 国产精品久久一区主播| 激情欧美一区二区| 亚洲视频免费观看| 免费精品视频| 亚洲一区二区欧美| 麻豆国产精品一区二区三区 | 欧美刺激性大交免费视频| 国产精品视频久久一区| 91久久精品国产91久久| 欧美在线视频一区二区三区| 亚洲国产成人久久综合一区| 性久久久久久久久| 欧美日韩极品在线观看一区| 好看不卡的中文字幕| 亚洲欧美日韩专区| 欧美大片一区| 欧美在线日韩精品| 国产精品国内视频| 99国产精品自拍| 欧美高清在线视频| 久久精品国产91精品亚洲|