?? ?這段時間段伏櫪在折騰.NET Micro Framework的時候,終于體會到什么叫舉步維艱了。因為這玩意沒有操作系統做支撐,直接是操作硬件,有時候出問題了,根本就不知道是如何引起的。
?? ?比如說,在移植的過程中,數據存儲和代碼運行在內存的區域是移植者自己設定并且在編譯完成后是固定的。這看起來是沒有什么問題,可實際上在移植過程中,經常發現存儲空間的地址將代碼空間給覆蓋了。這種情況在基于操作系統的開發中即使遇到,也不會讓程序員摸不著頭,因為系統會直接報錯;可對于移植來說,只要是地址正確,就能修改成功,根本就沒有任何防護。這么一來就會有一個很嚴重的問題,數據存儲更改了代碼空間的數值,而CPU卻依然將其作為代碼運行。這種結果不多說也知道嚴重性,幸運的話直接是hard fault,不幸的話則是執行莫名其妙的代碼讓自己摸不著頭腦。
?? ?以前在學習操作系統原理的時候,對于內存空間分布這些概念是懵懵懂懂,即使是后來能夠游刃有余地進行WinCE的開發,段伏櫪也是一知半解。可這有什么辦法呢?操作系統已經將很多事情給包攬了,程序員根本就不用考慮那么多,所以根本就不知道其技術的存在。舉個最簡單的例子,程序是放在硬盤的,點擊運行的時候它會在哪里呢?CPU是在硬盤獲取執行代碼,還是在內存中?這個簡單的問題,很可能很多寫了多年的程序的老鳥也未必能答對,因為在實際中根本就不用考慮這問題啊!可這簡單的事情,在和硬件直接打交道的移植中就沒那么簡單了:程序現在是在NAND FLASH中,如何將它放到內存中去執行呢?如果是放到內存中,那應該是放到哪里呢?而在放之前,又要做什么準備工作呢?諸如種種繁雜之事,都是要由程序員自己去實現,自己去擔心。
?? ?直到這時候,段伏櫪才感覺到自己是在做嵌入式開發。回想以前,無論寫了多少WinCE的應用程序,嚴格意義上來說這都不算嵌入式開發:除了掛著WinCE這個旗號以外,它又有多少和桌面Windows截然不同的地方?即使是后來做BSP的底層驅動,雖然有了和硬件直接打交道的地方,但實際大部分還是基于微軟的系統框架,只需要依葫蘆畫瓢即可,也不能算是真正的嵌入式開發,最多就是個偽嵌入式。
?? ?可做.NET Micro Framework的移植就不同了,沒有任何操作系統的因素在做支撐,所有的一切都程序程序員來操心。這自然是非常繁瑣,但帶給段伏櫪的收獲是巨大的。很多以前半知半解的概念,此時卻是豁然開朗,再無半分的不解。可以這么說,這段時間的移植工作所獲得的知識價值,比這兩年的總和還要多。
?? ?工作上有收獲,生活上亦是有改變。劉思敏自從向公司提出離職申請以來已經過了一個月,前幾天的時候已經確定正式離職。不過劉思敏倒沒有急著趕赴北海和伍定軒見面,而是利用這難得的時間,好好休息一把,將深圳沒玩過的地方走個便。因為按照劉思敏的說法,這輩子會不會來深圳,她自己都不知道,那何不現在痛痛快快輕松一下呢?
?? ?在QQ上,段伏櫪不懷好意地問伍定軒:“劉思敏去北海的話,你打算讓她住哪里啊?”
?? ?伍定軒回道:“現在打算是先讓她在外面租房,因為現在住家里不合適。”
?? ?難得的機會,段伏櫪自然要調侃:“這倒也是,在家確實不方便,那個的時候也不敢叫太大聲。”
?? ?“……滾!”
?? ?“劉思敏現在已經打算跑到北海了,話說你什么時候打算給她一個交待?”
?? ?伍定軒倒也不掩飾:“明年吧!要結婚總要有房子吧?我買的房子明年才能交房,等交了房才結婚。”
?? ?不能不說,房子一直一來都是國人的一個心結。不論有錢的,還是沒錢的,都想給自己的家庭弄一套房。這種心態沒錯,畢竟誰不想有一個自己的窩啊?要怪就怪那該死的開發商,這房價漲得跟衛星上天似的,國人撒開腿丫子跑也趕不上。胳膊擰不過大腿,這房子再貴也得買啊!沒錢那該怎么辦?砸鍋賣鐵咯!可憐天下父母心,好不容易付了高額的學費讓自己的孩子念完了大學,本以為這下子有了盼頭,可沒想到后面還有買房子這一出。
?? ?不知道別人是怎么想的,反正段伏櫪覺得買房子如同剝了父母一層皮一般。可沒辦法啊,自己工作才那么幾年,哪有那么多錢付首付?如果非要自己攢,等自己攢夠了買現在首付的錢,卻已經付不起那時候的首付。既然如此,那不如現在咬咬牙吧!
?? ?幸運的是,段伏櫪還不必太用力咬牙,因為之前在北海買的房子順利脫手,總共賣了四十多萬。這筆錢在深圳全款買個套間是不可能的,但勉強還能付個首付。有這筆巨款在手,段伏櫪便開始在深圳看起房來。
?? ?段伏櫪和徐雅思不是那種好高騖遠的人,看房子根本就沒去搭理新房。因為新房的價格普遍很高,即使勉強付完首付,后續的月供也會讓兩人壓得透不過氣來。于是,二手房便成了兩人的目標。不過這房子畢竟是件大事,雖然這四十萬在很多人眼里算不得什么,但段伏櫪知道這差不多是父母所有的家當,不能不慎重,所以這段時間看了不少房,但還是沒有下定買的決心。
?? ?兩周之后,劉思敏終于要踏上北海的旅途了。不用說,段伏櫪和徐雅思肯定是要到銀湖汽車站送行。不過這次送別并沒有太多離別的味道,更像是朋友要出門旅行的短暫告別而已。或許在大家的心里,劉思敏去了北海,并不意味著這輩子無法再見,因為只要段伏櫪和伍定軒的根還在,那么大家總有見面的一天。
?? ?劉思敏走了,同事小藍也要走了。本來武總打算在小藍走之前,狠狠壓榨他一把,讓他到微永芯去盯著對方干活。小藍倒也干脆,去就去唄,不過到點了就準時下班。為此武總很惱火:“唉,你那工作態度不行啊,怎么別人沒下班,你就走了呢?我這車機要是完不成該怎么辦?”
?? ?小藍一副死豬不怕開水燙的模樣:“機器完成和不完成和我有什么關系嗎?難道做好了你還會給我獎金?”
?? ?這么一句直白的話,讓武總頓時覺得語塞。一旁的段伏櫪聽了,心里暗暗叫好。
?? ?武總見再也無法像以前一樣使喚小藍,只好把目標轉移到小黑的身上。可憐的小黑,又再次過起了和當時劉工他們合作的類似日子:每天跑到微永芯去盯著。所幸的是,微永芯的工程師沒有像當時的劉工那么拼命,即使加班也是七點半左右就走了,所以小黑倒也不至于弄到深更半夜。
?? ?只不過這么一來,武總又不滿了:“他們事情又沒做完,你怎么能讓他們回家呢?”
?? ?小黑也不甘示弱:“我只是一個小兵,他們要回家,我怎么能攔得住?又不是我給他們發工資!”
?? ?就這么一句話,把武總給頂了回去。武總想了想,覺得小黑說的似乎也有道理,便直接給微永芯的老板打了個電話,想讓他給自己的員工施壓。可參與武總這案子的工程師也不是省油的燈,立馬反駁,說自己之所以那么早下班,完全是因為自己的事情已經做完了,武總所說的那些是他后來加的需求;如果不信的話,可以讓武總將需求羅列出來,看看哪些沒有做到的。
?? ?這么一來,就完全擊中了武總的軟肋。需求列表?武總自己都不知道自己要做的產品是咋樣,讓他怎么羅列?武總所知道的,就是等人家將東西做出來了,然后指出哪些不好哪里不對,讓人家再根據自己的要求改來改去。
?? ?武總在微永芯碰了釘子,滿腔的怒火只好往小黑發泄:“反正我不管,這是你的事情!不管你用什么方法,你要逼著他們將這事情搞完!如果搞不完,那就扣你工資!”
?? ?武總這完全就是毫無道理的遷怒了。試想一下,你作為領導都無法使喚對方公司的工程師,你讓自己公司一個小小的員工,如何去要求對方?小黑自然覺得萬分委屈,可他也只能忍著。因為小黑知道,他的技術還處于非常菜鳥的階段,根本做不到像小藍那樣想跳就跳。
?? ?其實作為老大,段伏櫪也是深知小黑的弱點,所以平時也會提醒小黑,讓他多看看BSP的代碼,多學一點東西,對以后有好處。可是小黑在程序方面,相比小藍來說還是有所欠缺,雖然有段伏櫪的鞭笞,但依然還是進展緩慢。
?
?? ?雖然在程序方面弱了點,但小黑在探究消息的嗅覺上還是挺靈敏的。在和微永芯的工程師聊天中得知,這次微永芯不僅幫武總從無到有設計方案,并且相關的物料錢也是他們出的。按武總的性格,這倒并不是一件很意外的事。但讓段伏櫪覺得有點蹊蹺的是,在平時早上和武總的聊天中得知,其實這款車機是給樂航設計的,并且為此樂航還付給了武總一筆不菲的費用做開發費。這開發費既然沒有用到物料上,那也絕對不會白白給了微永芯,那這錢哪去了呢?更為讓段伏櫪覺得奇怪的是,這款車機所有的一切都是由微永芯包辦的,而安勒斯在此沒有任何參與的余地,那為何微永芯還要幫武總進行開發,而不是索性自己單干呢?
PS:在這里先給大家道個歉了,因為下周要出差,要到一個鳥不拉屎,兔不生蛋的地方,網絡自然更是不可能,并且到時候估計連坐下來靜靜敲文字的時間都沒有,所以下周只能先暫時停止一周,實在抱歉!等回來后,一定第一時間通知大家,在此norains先向大家謝罪了~
- 前言
- 《那些年啊,那些事——一個程序員的奮斗史》——01
- 《那些年啊,那些事——一個程序員的奮斗史》——02
- 《那些年啊,那些事——一個程序員的奮斗史》——03
- 《那些年啊,那些事——一個程序員的奮斗史》——04
- 《那些年啊,那些事——一個程序員的奮斗史》——05
- 《那些年啊,那些事——一個程序員的奮斗史》——06
- 《那些年啊,那些事——一個程序員的奮斗史》——07
- 《那些年啊,那些事——一個程序員的奮斗史》——08
- 《那些年啊,那些事——一個程序員的奮斗史》——09
- 《那些年啊,那些事——一個程序員的奮斗史》——10
- 《那些年啊,那些事——一個程序員的奮斗史》——11
- 《那些年啊,那些事——一個程序員的奮斗史》——12
- 《那些年啊,那些事——一個程序員的奮斗史》——13
- 《那些年啊,那些事——一個程序員的奮斗史》——14
- 《那些年啊,那些事——一個程序員的奮斗史》——15
- 《那些年啊,那些事——一個程序員的奮斗史》——16
- 《那些年啊,那些事——一個程序員的奮斗史》——17
- 《那些年啊,那些事——一個程序員的奮斗史》——18
- 《那些年啊,那些事——一個程序員的奮斗史》——19
- 《那些年啊,那些事——一個程序員的奮斗史》——20
- 《那些年啊,那些事——一個程序員的奮斗史》——21
- 《那些年啊,那些事——一個程序員的奮斗史》——22
- 《那些年啊,那些事——一個程序員的奮斗史》——23
- 《那些年啊,那些事——一個程序員的奮斗史》——24
- 《那些年啊,那些事——一個程序員的奮斗史》——25
- 《那些年啊,那些事——一個程序員的奮斗史》——26
- 《那些年啊,那些事——一個程序員的奮斗史》——27
- 《那些年啊,那些事——一個程序員的奮斗史》——28
- 《那些年啊,那些事——一個程序員的奮斗史》——29
- 《那些年啊,那些事——一個程序員的奮斗史》——30
- 《那些年啊,那些事——一個程序員的奮斗史》——31
- 《那些年啊,那些事——一個程序員的奮斗史》——32
- 《那些年啊,那些事——一個程序員的奮斗史》——33
- 《那些年啊,那些事——一個程序員的奮斗史》——34
- 《那些年啊,那些事——一個程序員的奮斗史》——35
- 《那些年啊,那些事——一個程序員的奮斗史》——36
- 《那些年啊,那些事——一個程序員的奮斗史》——37
- 《那些年啊,那些事——一個程序員的奮斗史》——38
- 《那些年啊,那些事——一個程序員的奮斗史》——39
- 《那些年啊,那些事——一個程序員的奮斗史》——40
- 《那些年啊,那些事——一個程序員的奮斗史》——41
- 《那些年啊,那些事——一個程序員的奮斗史》——42
- 《那些年啊,那些事——一個程序員的奮斗史》——43
- 《那些年啊,那些事——一個程序員的奮斗史》——44
- 《那些年啊,那些事——一個程序員的奮斗史》——45
- 《那些年啊,那些事——一個程序員的奮斗史》——46
- 《那些年啊,那些事——一個程序員的奮斗史》——47
- 《那些年啊,那些事——一個程序員的奮斗史》——48
- 《那些年啊,那些事——一個程序員的奮斗史》——49
- 《那些年啊,那些事——一個程序員的奮斗史》——50
- 《那些年啊,那些事——一個程序員的奮斗史》——51
- 《那些年啊,那些事——一個程序員的奮斗史》——52
- 《那些年啊,那些事——一個程序員的奮斗史》——53
- 《那些年啊,那些事——一個程序員的奮斗史》——54
- 《那些年啊,那些事——一個程序員的奮斗史》——55
- 《那些年啊,那些事——一個程序員的奮斗史》——56
- 《那些年啊,那些事——一個程序員的奮斗史》——57
- 《那些年啊,那些事——一個程序員的奮斗史》——58
- 《那些年啊,那些事——一個程序員的奮斗史》——59
- 《那些年啊,那些事——一個程序員的奮斗史》——60
- 《那些年啊,那些事——一個程序員的奮斗史》——61
- 《那些年啊,那些事——一個程序員的奮斗史》——62
- 《那些年啊,那些事——一個程序員的奮斗史》——63
- 《那些年啊,那些事——一個程序員的奮斗史》——64
- 《那些年啊,那些事——一個程序員的奮斗史》——65
- 《那些年啊,那些事——一個程序員的奮斗史》——66
- 《那些年啊,那些事——一個程序員的奮斗史》——67
- 《那些年啊,那些事——一個程序員的奮斗史》——68
- 《那些年啊,那些事——一個程序員的奮斗史》——69
- 《那些年啊,那些事——一個程序員的奮斗史》——70
- 《那些年啊,那些事——一個程序員的奮斗史》——71
- 《那些年啊,那些事——一個程序員的奮斗史》——72
- 《那些年啊,那些事——一個程序員的奮斗史》——73
- 《那些年啊,那些事——一個程序員的奮斗史》——74
- 《那些年啊,那些事——一個程序員的奮斗史》——75
- 《那些年啊,那些事——一個程序員的奮斗史》——76
- 《那些年啊,那些事——一個程序員的奮斗史》——77
- 《那些年啊,那些事——一個程序員的奮斗史》——78
- 《那些年啊,那些事——一個程序員的奮斗史》——79
- 《那些年啊,那些事——一個程序員的奮斗史》——80
- 《那些年啊,那些事——一個程序員的奮斗史》——81
- 《那些年啊,那些事——一個程序員的奮斗史》——82
- 《那些年啊,那些事——一個程序員的奮斗史》——83
- 《那些年啊,那些事——一個程序員的奮斗史》——84
- 《那些年啊,那些事——一個程序員的奮斗史》——85
- 《那些年啊,那些事——一個程序員的奮斗史》——86
- 《那些年啊,那些事——一個程序員的奮斗史》——87
- 《那些年啊,那些事——一個程序員的奮斗史》——88
- 《那些年啊,那些事——一個程序員的奮斗史》——89
- 《那些年啊,那些事——一個程序員的奮斗史》——90
- 《那些年啊,那些事——一個程序員的奮斗史》——91
- 《那些年啊,那些事——一個程序員的奮斗史》——92
- 《那些年啊,那些事——一個程序員的奮斗史》——93
- 《那些年啊,那些事——一個程序員的奮斗史》——94
- 《那些年啊,那些事——一個程序員的奮斗史》——95
- 《那些年啊,那些事——一個程序員的奮斗史》——96
- 《那些年啊,那些事——一個程序員的奮斗史》——97
- 《那些年啊,那些事——一個程序員的奮斗史》——98
- 《那些年啊,那些事——一個程序員的奮斗史》——99
- 《那些年啊,那些事——一個程序員的奮斗史》——100
- 《那些年啊,那些事——一個程序員的奮斗史》——101
- 《那些年啊,那些事——一個程序員的奮斗史》——102
- 《那些年啊,那些事——一個程序員的奮斗史》——103
- 《那些年啊,那些事——一個程序員的奮斗史》——104
- 《那些年啊,那些事——一個程序員的奮斗史》——105
- 《那些年啊,那些事——一個程序員的奮斗史》——106
- 《那些年啊,那些事——一個程序員的奮斗史》——107
- 《那些年啊,那些事——一個程序員的奮斗史》——108
- 《那些年啊,那些事——一個程序員的奮斗史》——109
- 《那些年啊,那些事——一個程序員的奮斗史》——110
- 《那些年啊,那些事——一個程序員的奮斗史》——111
- 《那些年啊,那些事——一個程序員的奮斗史》——112
- 《那些年啊,那些事——一個程序員的奮斗史》——113
- 《那些年啊,那些事——一個程序員的奮斗史》——114
- 《那些年啊,那些事——一個程序員的奮斗史》——115
- 《那些年啊,那些事——一個程序員的奮斗史》——116
- 《那些年啊,那些事——一個程序員的奮斗史》——117
- 《那些年啊,那些事——一個程序員的奮斗史》——118
- 《那些年啊,那些事——一個程序員的奮斗史》——119
- 《那些年啊,那些事——一個程序員的奮斗史》——120
- 《那些年啊,那些事——一個程序員的奮斗史》——121
- 《那些年啊,那些事——一個程序員的奮斗史》——122
- 《那些年啊,那些事——一個程序員的奮斗史》——123
- 《那些年啊,那些事——一個程序員的奮斗史》——124
- 《那些年啊,那些事——一個程序員的奮斗史》——125
- 《那些年啊,那些事——一個程序員的奮斗史》——126
- 《那些年啊,那些事——一個程序員的奮斗史》——127
- 《那些年啊,那些事——一個程序員的奮斗史》——128 (終章)