佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 13938|回复: 232

嵌入式系統初探

[复制链接]
发表于 22-1-2009 10:56 PM | 显示全部楼层
原帖由 reikyv 于 22-1-2009 03:21 PM 发表


那么你要跟我分享什么?


我是学生一名, 有什么你ngam分享的
我也不知道可以分享什么
我一定会尽力而为
大家努力
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 27-2-2009 09:35 PM | 显示全部楼层

回复 118# neow_wy 的帖子

neow_wy 兄講得很詳盡呢
我也補充一點東西...
1. 其實已經有人成功在前公司的EPC上編譯及使用Android,不過這是user自已的行為,並非Android的netbook產品,相信很快真的能看到Android的netbook。(不過EPC不是ARM-based,是ATOM CPU)。昨天有個新聞,就是nokia也要打netbook市場了。

2. IPHONE我不是很肯定,但我相信應該也是用雙ARM CPU。目前3G主流手機,例如前公司的手機產品(剛好之前待在手機部門)或HTC系列的PDA Phone產品都是雙cpu架構,ARM11負責Multimedia, ARM9負責Modem。例如Qualcomm的7k和8k系列都是這種架構。

3. Symbian的普及,實在是拜Nokia所賜。早期在PDA Phone以前的時代,另一個常見的手機os為nucleus。這就拜聯發科所賜,使得大陸山寨機熱賣  我之前做過的feature phone也是用這種OS,甚至之前在參與開發WiMAX Solution時,用的os也是nuclues,當時nuclues是很受歡迎的啊

4. 很多人以為wince只常見於手機或pda,其實在工業電腦上也是常見的。

其實打到最後,漸漸地形成三國鼎立了,就是Embedded Linux, Windows Mobile和Mac ,其中又以前二者為最大宗。到底哪個好呢? 只能老話一句,各有優缺。兩種手機我都有參與過,使用Windows Mobile真的使開發時程快上許多,有問題還可以請M$解決 (當然你們公司的產量要夠大)。不過你每一支產品都要付logo的錢給m$就是了。平均半年到一年之間就可以出一支Windows Mobile的PDA Phone。若是HTC的團隊,或許更快 (個人認為他們的團隊很有效率,加上有m$的全力support,喔不,是HTC support M$ )

最後,我的結論是,ARM真是賺翻了

[ 本帖最后由 詩魂 于 27-2-2009 09:37 PM 编辑 ]
回复

使用道具 举报

发表于 4-2-2009 11:20 PM | 显示全部楼层
data mining好用阿。。。

还蛮好玩的。。。
其中一个我学ai的原因。但是没有教,可惜呀可惜。但是最后还是自修了
回复

使用道具 举报

发表于 20-1-2009 11:37 PM | 显示全部楼层
开始写啦 。。。我来抢沙发的。
回复

使用道具 举报

 楼主| 发表于 20-1-2009 11:37 PM | 显示全部楼层 |阅读模式
前言

隨著消費性電子產品例如手持式電子產品,包括手機,PDA Phone, Smart Phone, GPS日益普及,乃至資訊家電,數碼家庭的概念逐漸地落實,嵌入式系統
Embedded System)也逐漸成為企業界及學術界的明星。


雖然嵌入式系統的應用漸廣,需求也大增,但一直以來,仍然僅止於企業開發的重點,而學術界至今仍未把嵌入式系統視為必修,而有興趣學習者,往往不得其門而入。其主要的原因在於學習的門檻高,所需的花費也高。

想像一下,假設各位想在個人電腦上寫一個能印出 “Hello World!”Java程式,各位可能會先準備Java Virtual Machine, JavaCompiler。可能到SunWebsite下載Java SDK,也可能準備JBuilder來撰寫,編譯,執行。

但如果各位要在ARM平台執行一個自己撰寫的能印出 “Hello Embedded System!”的程式,卻沒有這麼方便,我們至少要先安裝交叉編譯器 (Cross-Compiler),也可能需要撰寫Makefile, 然後Build程式,然後用特定的燒寫工具 (Flash and Debug tool)例如ICE 把這支程式載到ARM微處理機的板子上執行。

原以為開機以後,就會在LCD上印出Hello Embedded System! 結果系統卻是一動也不動,在硬體重啟(Reset)後發現畫面上什麼也沒有。

原來,在嵌入式系統,沒有人為你對整個開機環境初始化,一切從上電以後,ARM CPU開始執行第一個指令開始,都要由我們自行開發,撰寫開機的引導程式,對一些重要的硬體()初始化完畢,才能載入系統核心,然後才有檔案系統(filesystem),讓我們寫好的程式能在其上執行。

本文將以連載的方式,分享筆者的一點心得,將從硬體上電以後,嵌入式平台處理器執行第一個指令開始,引領初學者一窺嵌入式系統的殿堂。

[ 本帖最后由 詩魂 于 21-1-2009 08:50 PM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 20-1-2009 11:53 PM | 显示全部楼层
在開始認識嵌入式系統以前,讓我們先了解何謂Memorymapping I/Omapping。我們都知道,跟處理器相連的主要硬體有二,一為記憶體,另一為週邊硬體(Peripheral)。週邊硬體泛指一些記憶體以外的特殊硬體裝置,例如序列埠 (SerialPort)

那麼,處理器是如何找到這些硬體裝置,然後對它們做存取(訪問)的動作呢?沒錯,就是透過位址。若把記憶體和週邊都放在相同的位址空間,這種方式稱為Memory-mapped。這種系統的特點就是可以透過存取記憶體的指令來存取週邊。ARM就是屬於這種。

相反地,如果記憶體和週邊分屬在不同的位址空間,這種方式稱為I/O-mappedX86處理器就屬於這種。
回复

使用道具 举报

Follow Us
 楼主| 发表于 21-1-2009 12:22 AM | 显示全部楼层
回到之前的例子。如果各位要在ARM平台執行一個自己撰寫的能印出 “Hello Embedded System!”的程式,需要哪些環境呢?我們可能需要呼叫函式(functioncall),那至少,CPUSP(Stack Pointer)暫存器(Register)要已經ready,隨此之外,還有許多程式需要用到的暫存器,例如狀態暫存器,PC暫存器等都需已經初始化完畢,然後再對CPU其他功能也做初始化(initialization),然後還要初始化那些應用程式會用到的硬體,最後載入系統核心,這樣才能讓我們的應用程式能夠正確地執行。

是誰來做啟動的動作,初始化硬體,並載入核心呢? 答案是Bootloader。或許我們比較熟悉的是PC的啟動程序。在PC中,也是有所謂的Bootloader來引導開機,只不過它是由BIOS和硬碟(Hard disk)MBRBootloader,例如我們熟悉的LILO,GRUB所組成。主板上電以後,BIOS會開始做自我檢查及分配資源,然後把位於MBRBootloader給載到隨機存取記憶體(RAM),並將控制權轉移給Bootloader

這時Bootloader要做什麼呢? 他的主要任務就是將系統的核心映像檔 (kernelimage file) 載入到RAM,若是Linuxkernel可能需先解壓縮,再載到RAM執行,然後跳到kernel的入口,開始了系統的操作環境。

然而在嵌入式系統,其整個引導開始,以及載入作業系統的工作都由Bootloader來完成。以ARM為例,主板在供電以後,是由0x0開始執行,通常,我們會把Bootloader放到這個位址。

好想睡了,改天再來檢查有沒有寫錯並繼續

回复

使用道具 举报

发表于 21-1-2009 12:50 AM | 显示全部楼层
很不错的分享。值得夸奖 :-)
很多人(当然我是指从事与IT技术相关职业的,并不强求老百姓也去明白)使用OS都没有这方面的概念,尤其是boot process到底是怎么回事。
最近和朋友在搞着一些robotic的东东,希望能从你这里偷师偷师。
加油!
回复

使用道具 举报


ADVERTISEMENT

发表于 31-1-2009 12:23 AM | 显示全部楼层
对了。。。sweemeng,你是做那方面的AI?
回复

使用道具 举报

发表于 31-1-2009 12:22 AM | 显示全部楼层
原帖由 atchek 于 30-1-2009 09:16 PM 发表
你的AI 要做什么的?

其实我的目的是要他在陆地上跑先才下水


自动平衡啊,防撞啦, 。。。很多啦
回复

使用道具 举报

 楼主| 发表于 21-1-2009 08:50 PM | 显示全部楼层
剛把標題改得比較有文化一點
回复

使用道具 举报

 楼主| 发表于 21-1-2009 08:55 PM | 显示全部楼层

回复 5# reikyv 的帖子

reikyv 兄您好,
沒辦法,這些東西,教科書裡不教,既便是IT的學生或寫application program的engineer,
也不見得會特地去了解這些內容,因為考試不會考,工作也沒用到

感覺大馬的firmware engineer很少很少...
可能是產業不同....

我只能拋出磚頭來,看能不能引一些玉
所以您想偷師的話,還要等看看有沒有人貢獻一點玉

明天我就回馬來西亞囉,應該暫時沒辦法繼續寫,
就等我過完年回來再盡量抽空,多少寫一點
回复

使用道具 举报

发表于 21-1-2009 09:02 PM | 显示全部楼层
原帖由 詩魂 于 2009/1/21 08:55 PM 发表
reikyv 兄您好,
沒辦法,這些東西,教科書裡不教,既便是IT的學生或寫application program的engineer,
也不見得會特地去了解這些內容,因為考試不會考,工作也沒用到

Hi :-)
我是说OS的boot process.... 当然,embedded system不是普通教科书里会教的。。。 :-)
回复

使用道具 举报

发表于 28-1-2009 11:15 AM | 显示全部楼层

回复 18# chingjun 的帖子

其实可以用SERIAL PORT PROGRAMMING
比较简单。
回复

使用道具 举报

发表于 22-1-2009 02:30 PM | 显示全部楼层
原帖由 reikyv 于 21-1-2009 12:50 AM 发表
很不错的分享。值得夸奖 :-)
很多人(当然我是指从事与IT技术相关职业的,并不强求老百姓也去明白)使用OS都没有这方面的概念,尤其是boot process到底是怎么回事。
最近和朋友在搞着一些robotic的东东,希望能从 ...


酱你也应该分享一下, 大家互惠互利
回复

使用道具 举报

发表于 22-1-2009 03:21 PM | 显示全部楼层
原帖由 晨天 于 2009/1/22 02:30 PM 发表


酱你也应该分享一下, 大家互惠互利


那么你要跟我分享什么?
回复

使用道具 举报


ADVERTISEMENT

发表于 23-1-2009 02:28 AM | 显示全部楼层
原帖由 晨天 于 2009/1/22 10:56 PM 发表


我是学生一名, 有什么你ngam分享的
我也不知道可以分享什么
我一定会尽力而为
大家努力


如果你是要我分享关于 robotic的。
抱歉,那个project十划都没有一撇,我们还在讨论中。
初步概念是做一个迷你的robotic arm。一些零件已经买了,图也画了,但是却没有人会programming IC。。。
如果你有兴趣学习solaris,不妨一起研究。。。(这里
回复

使用道具 举报

发表于 23-1-2009 09:45 AM | 显示全部楼层
原帖由 reikyv 于 23-1-2009 02:28 AM 发表


如果你是要我分享关于 robotic的。
抱歉,那个project十划都没有一撇,我们还在讨论中。
初步概念是做一个迷你的robotic arm。一些零件已经买了,图也画了,但是却没有人会programming IC。。。
如果你有兴趣 ...


可以分享一下吗?
你打算用SOLARIS 来建立你的ROBOTIC ARM?

[ 本帖最后由 atchek 于 23-1-2009 09:47 AM 编辑 ]
回复

使用道具 举报

发表于 23-1-2009 03:52 PM | 显示全部楼层
原帖由 atchek 于 2009/1/23 09:45 AM 发表


可以分享一下吗?
你打算用SOLARIS 来建立你的ROBOTIC ARM?

Solaris?不是。那个是另外一个project。

Robotic arm的基本结构(例如摩多,工业用的,朋友从外国购入。至于外壳则自己亲手做,基本上很粗糙)已经有了也接好了。
现在的问题是在电板和IC的programming。我们没有人有Electronic的background。所以要自己研究如何program IC。
那个robotic arm就像是工业用的那种,可以上下左右移动,然后夹东西。不过是迷你型的。
就只能说那么多。

至于Solaris,是我要用到它的kernel virtualization的技术。所以才会想学。当然还有它的ZFS,Dtrace等。
听说ZFS会port去Linux,而OSX好像snow leopard就会有了。

难道atchek对robotic有兴趣?
回复

使用道具 举报

发表于 23-1-2009 04:31 PM | 显示全部楼层
有兴趣玩ROBOTIC

想过用ATOM + WIFI + WEBCAM + WHEEL 来建立一个 有视像功能的 遥控车。

但没时间研究。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 16-12-2024 04:40 AM , Processed in 0.138078 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表