|
要罵人前最好先有十足的把握,不然就會像我那篇"香港之旅"一樣的丟臉,把香港罵的一無是處,結果展現的只是我對旅遊的無知,並不是香港有問題,所以我被很多香港同志們臭罵一頓,我都不敢還嘴,還發出道歉聲明,我現在對香港很歉疚,因為我錯罵了,還害的某些人對香港有成見,所以這些文章我都沒有刪除,就是希望之前被我誤導的某些人有機會修正回來,我被罵的很難聽啊,很丟臉,但我不會拿掉,除非UDN關閉或是我再也不要這個blog。 因為我有點看不懂你要講的內容,所以如果講錯了,不要客氣,立刻反應出來。 Q. [不論pointer的宣告為何, 都不能改變所指的記憶體貯存位置. 因為未知pointer會指向甚麼, 所以任何行為都是未定義] A. 不對,陣列才無法改變位址,陣列的lable和變數命名一樣只是代號,pointer本身是占有一塊記憶體的,有需要也可以型別轉換,除非它是唯讀記憶體,否則當然可以改變,pc的平台會有很多的exception handler,為了就是預防使用者與程式設計師做出了古怪的動作來產生保護,避免破壞掉其他工作,但是是絕對的嗎?不是的,當你在寫driver時需要進入另一個level,此時許多保護就會消失,所以driver寫的爛的,不管是linux還是windows,都會讓整個系統變的很古怪,也未必會產生錯誤。 程式怎麼會有未知的pointer?程式的宣告出了問題,你連compiler都過不了關,就算是VB,也是varient這個通用型的變數,不會有未知的出現,我真的看不懂你在說甚麼! Q. [flash本身亦是隨機存儲器(RAM)] A. 胡說八道!你是聽誰講的,我都不知道從哪裡回應起,好好把spec讀熟,rom/prom/eprom/eeprom/flash,sram/ssram/dram/sdram,HDD/NAND FLASH/CF CARD/SD CARD這些spec讀熟再來扯,至少你也扯個類生物DNA系統來嚇嚇我,我說不定被嚇到了,結果你拿這個我熟到不能再熟的東西來罵我,真奇怪!給你一個功課,sdram(ddr也一樣)如果沒有MMU效能會低落,為什麼?仔細想一想。 Q. [當程序起始時整個程式會放進main memory] A. 有作業系統的程式來說是的,尤其是程式是儲存在像hdd/nand flash等等非位址線定址的儲存裝置特需要載入動作,或是需要擺脫慢吞吞的flash也需要載入,如果沒有os,程式也沒有很大,就算是pc,也不一定是需要特別的載入動作,電源啟動時,BIOS會先被CPU執行,當BIOS動作完成後,BIOS會把HDD的sector 0的程式碼載入記憶體,接下來就直接把控制權交出,跳到剛才那段程式的第一byte,接下來就可以像一般的embedded system一樣,可以一個迴圈跑全部程式,也可以所有task都執行,靠message互通,只是pc的能力那麼強,周邊那麼複雜,應該不會有人會捨棄windows或linux來自己搞全部的東西,就算是embedded system,現在也都需要作業系統,因為不只需要multi-task,還有許多周邊裝置需要控制,甚至是網路功能,太多了,做不完,一定要有作業系統,不然要累死了。 那個CONST的網頁我看過了,可能我的英文不好,我實在看不出來和我有甚麼牴觸 Q. [const 可以影響資料存在constant memory還是 stack, 但無論如何也是main memory, 即"ram"] A. 胡說八道!不要做過PC的程式就認為都是這樣,我不講一般embedded system,你猜猜BIOS的程式碼有沒有const,指的有沒有一定是RAM? Q. [你活在自己的世界太久了, 亦懶得測試求證] A. 這應該是我問你的話,我也一路解釋下來了,好好想想吧!我不知道你的經驗是甚麼,有些這麼奇怪的歸納,我告訴你我的,我在大學時代就在寫PC的boot loader了,硬體電路經驗有10年以上,CPU部分,從PIC16/17/18,asm/c都用過,8051從陽春的,到turbo的,到f340這麼複雜的,asm,IAR/keil都用過,熟的不得了,keil的rtos也應用在設計的產品上,power pc與RTOS也做過,廠牌我忘了、ARM 7/9,sdt/ads,ASM我很熟,也做過embedded linux for ARM,以前我的主管移植了uCos RTOS,很好用,我也順便學了過來,還有一些工控cpu,DSP 5409也做過,做過jpeg encode/decode,也做過CD PLAYER,不過做不好,因為cd servo motor不清楚怎麼用,也因為這樣才感覺出來聯發科很厲害,還有一些雜七雜八的就不提了,我能夠自己用ORCAD畫出電路,備料,layout因為不熟,就慢多了,但線路該怎麼走我是清楚的,電路板回來後,除了BGA件,都用手工上件,測試,DEBUG,開始建立環境,設計程式,修改EMI也可以,到這個地步,應該不算懶的測試求證了吧!
|