RTX51 Tiny是基於Timesharing的RTOS,與系統中斷不同,它以非搶佔式的任務切換。所以在一個任務被執行時不能對其進行中斷,除非該任務主動放棄CPU的資源,中斷才可以打斷當前的任務,中斷完成後把CPU的控制權再交還該被中斷的任務。任務切換有兩種情況,一種是當前任務主動讓出CPU資源;另一種情況是在當前任務的時間片已經用完的情況下,進行任務切換。CPU執行時間被分成若干個時間片,RTX51 TINY為每個任務分配一個時間片。時間片是通過對變量INT_CLOCK與TIMESHARING兩個參數的設置來確定的。系統內定INT_CLOCK為10000、TIMESHARING為5,如果晶振頻率為11.059 2 MHz,則最大的時間片為(1/11.0592Mhz)×10000×5=4.52ms。
RTX51 TINY的任務切換共有 TASKSWITCHING 和SWITCHINGNOW兩個入口,前者供定時器Timer0的中斷服務程序,後者供系統函數os_delete和os_wait使用。相應地也有兩個不同的出口,分別是恢復保護現場和清除狀態標誌位。系統首先將當前任務置為「TIMEOUT」狀態,等待下一次時間片循環,然後找到下一個處於「READY」狀態的任務,通過堆棧管理,將自由堆棧空間分配給該任務,使其成為當前任務。清除使該任務進入「READY」或「TIMEOUT」狀態的相關位後,執行該任務。

傑克鼠 發表在 痞客邦 留言(2) 人氣()

 









傑克鼠 發表在 痞客邦 留言(0) 人氣()

C1D_1554
會知道這家店是看到網路上介紹,好像又是一家十分有趣店,假日在家又呆不住就來吃吃看,這家店位於永和市中正橋頭附近,又再次被台北混亂的道路打敗,在橋下晃了20分鍾才抵達目的。 這是一家創意咖哩為主題的餐廳,網路上介紹店主人自稱貓闆娘,因為她愛貓成癡,曾經家裡養超過二十隻貓!除了愛貓之外,另一個愛好就是吃咖哩。也就因為如此,索性就開起了一間滿屋子是貓塗鴉的咖哩店,只是在跟她請求拍一張照卻相當害羞,躲著不肯入鏡。 佈置整體感就是塗鴉,有一面特別漆黑的牆壁上畫滿可愛的貓,果然是走Crazy風。而連營業時間也是用塗鴉的方式呈現。雖然上面寫著黑色牆壁可以塗鴉,但也只有一塊牆而且幾乎已經畫滿搞笑貓了。

傑克鼠 發表在 痞客邦 留言(0) 人氣()

C1D_1165
這家餐廳位於和平東路與復興南路口附近,即和平東路2段118巷,聽說這家開了有十幾年了,也算難得的老店。它店面不算大,與網路上介紹安和路那家風格不太相同,可能是因為在台大附近,學生嘛不是很有錢,這家走的是平價路線,最便宜的本日套餐大約$199,內有自助沙拉、飲料以及蒜蓉麵包等無限供應,算是一個很適合聚會聊天的好地方。 主餐美味算普通,以如此的價位來講算是相當經濟實惠。地址:臺北市和平東路二段118巷2弄1號
電話:02-23776186

傑克鼠 發表在 痞客邦 留言(0) 人氣()

前篇簡單說明如何啟動WinCE上的FTPD功能,當然前提是必須在Platform Builder就已加入FTPD功能。但前所提的方式是以匿名方式存取WinCE FTPD,在獨立網域系統內這是最簡單便捷的方式,但若在開放網路環境下這方法就十分不保險,任何有心人士都能輕易找到這個匿名節點,所以至少要設專用的帳號密碼,以下說明如何讓WinCE FTPD具有登入特定帳號的功能。 Private Sub SetFTPD(byVal User as string, ByVal Password as string )      NTLMSetUserInfo(User , Password )      Dim strKeyName As String = "HKEY_LOCAL_MACHINE\Comm\FTPD"      Microsoft.Win32.Registry.SetValue(strKeyName, "AllowAnonymousUpload", 0)      Microsoft.Win32.Registry.SetValue(strKeyName, "AllowAnonymous", 0)

傑克鼠 發表在 痞客邦 留言(0) 人氣()

WinCE內建有簡單的FTPD服務,內定是關閉的,可透過修改註冊表將之開啟: [HKEY_LOCAL_MACHINE\Comm\FTPD]
    "IsEnabled"=dword:1
    "UseAuthentication"=dword:1
    "AllowAnonymous"=dword:1
    "AllowAnonymousUpload"=dword:1
    "DefaultDir"="\\temp"

傑克鼠 發表在 痞客邦 留言(0) 人氣()

想要用程式來變更WinCE的網路卡IP,微軟可能認為嵌入式系統的網卡IP在設備安裝後就不會更動,原因未知,但就是未提供方便API方便修改,因此想要更改IP就必須從修改Registry註冊表下手。
首先,要修改網卡IP就必須先知道網卡資訊在註冊表的位置與CreateFile時需要用的設備名稱。對於「設備名稱」,若系統只有單一網卡通常都會是"NDS0:",若是多張網卡就要找該網卡的Index了,沒錯,就是到BuiltIn區找驅動程式的設定,到下面位置取得下列兩參數:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\網卡名稱]
   "Prefix"="NDS" 
   "InstanceIndex"=dword:1 

傑克鼠 發表在 痞客邦 留言(4) 人氣()

【簡介】嵌入式系統應用很廣泛,無論家庭生活至工業生產都能有其應用範圍,對於家用而言,系統正常工作並非必要,不穩至停板只要一個Reset紐就可以解決,但對於工業應用而言,任何不正常的控制命令都可能導致重大損失。因此以「正常工作」是首要條件,「WatchDog Timer」這無時無刻監視著系統的小狗便是一個直接有效的工具,當系統遲緩或停擺時,可立刻發現並執行必要的工作。
【觀念】從軟體開發者的角度而言,「WatchDog Timer」就是一個倒數裝置,當時間倒數至0就會執行一內定工作,一般是給予Reboot,所以,程式必須在倒數結束內必須給予Strobe,告知狗狗程式還正常運行,狗狗將會恢復倒數時間重新倒數,如此週而復始的監視系統。
【實現】當然WatchDog這樣簡單的程式邏輯用一個高優先的執行緒便可搞定,但對於「監視」這樣重要的工作我是比較喜歡硬體中斷,在硬體上能選擇有此功能最好。在此以硬體WatchDog Timer為範例。
控制命令相當簡單,只需用CreateFile與DeviceIOControl配合IOCTL code即可,開啟方式:

傑克鼠 發表在 痞客邦 留言(3) 人氣()


這家「梨子咖啡館」是不是我的第一次來,上次我們來是來吃下午茶,真是不錯吃,加上本人對豐原夜市興趣缺缺,晚上就來吃吃看餐點如何摟。店裡的擺設裝潢以綠白色系為主,相當明亮簡潔,加上店面不小,是有些商業咖啡館,如「真鍋」的感覺。店內提供書報雜誌,可以讓客人待一下午享受休假的清閒,我剛好看到店員剛把蘋果日報放回架上,就拿來看看有什麼有趣的;此外某些座位也提供電源插座,對於喜歡隨處工作的SOHO族真是一大福音。
 
我們運氣算是不錯,來兩次都還有位置,但過我們坐下不久很快就客滿了,所以建議要來梨子咖啡消費的話,尤其希望有電源插座的座位,最好是先訂個位的,免的到時後影響原先的計劃。
 

傑克鼠 發表在 痞客邦 留言(0) 人氣()


東豐綠色走廊是一段從豐原、石岡至東勢三個鄉鎮的自行車專用道,全長約12公里,原本是台鐵東勢支線,但至民國八十年八月三十一日開出最後一班列車後漸漸荒廢。不過,經由地方的努力,將之改造成封閉的自行車專用道、佈置規劃兩側的商家,現在變成假日休閒的好地方。要到此處單車休閒,可以至朴子街或從石岡水壩入口處,兩側都有不少出租自行車、協力車的商家提供裝備與協助,可以先至網路上尋找打折的優待券每台車還可以省個三五十塊。

我們這次出發十分倉促,而且時間也有點晚了,怕太陽西下騎車不方便,因此就隨意找一家自行車店就租了,好把握時間。車道沿途直緩坡、榕樹樟樹等花草夾道而植,遠離城市的感覺,十分輕鬆愉快,專用道上禁止汽機車進入,可以安心騎乘,景點多集中在石岡附近,只是我們這趟有點懶散,享受騎自行車的心情,所以拍照就...有點偷懶:D。

傑克鼠 發表在 痞客邦 留言(0) 人氣()

一般錯誤的發生通常是在程式執行下,很容易在Debug-Mode或用Try Catch抓出,但這個Exception發生的時機與一般不同,並非出現在某行指令執行,因此光只是在事件or方法中用Try Catch包死死就可以抓出皮漏,至少在我發生的時機,完全無法取得錯誤資訊,害我被這個可惡的Bug攪和了一整天,好不容易才找到原因。
稍為描述我遇到這個Exception,由於是在WinCE環境下發生,當下沒有抓圖軟體可以用,完整的錯誤如下:
Fatal Application Error
Application TD_Control.exe has performed an illegal operation and
will be shut down.
If the problem persists, contact the program vendor.
Program: TDS_Control.exe
Exception: 0xC0000005
Address: 01B84871

傑克鼠 發表在 痞客邦 留言(2) 人氣()

當多個執行緒在共用變數的時候,首要小心遇到死結問題,基本發生原因為其一執行緒Lock住變數,導致其他執行緒無窮境的等待,想起來似乎不容易發生,確實當整個程式只共用一組變數,這種問題很容易避免,但若在同一時間內到兩個以上的變數,這種死結是很容易發生的,以下簡單的範例 。
範例:
下兩個執行緒的程式碼,其中含有兩個將共用的物件 Object_A 和 Object_B:

傑克鼠 發表在 痞客邦 留言(2) 人氣()

Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。