跳到主要內容

發表文章

目前顯示的是有「Embedded Issues」標籤的文章

Windows Compact 2013 UI 元件

Windows Compact 2013 在這一版所加入的新元件或是升級元件中,對於UI 軟體設計人員最重要的莫過於 Gesture 手勢操作引擎的加入以及更多元化的 UI Theme/Overlapping Menus  與 Touch Screen 功能的支援, 以及更新架構的 XAML for windows embedded元件, 透過 Windows Compact 2013 開發更符合現代潮流與人性化的UI資訊工作站與POS系統 有興趣的人可以與我聯絡, 我可以提供更進一步的 UI設計資訊

Windows CE 5.0 環境變數與目前目錄問題

在某次的Windows CE 教育訓練課程裡面被問到的一個問題,或許其他初學者也會遇到相同問題,就在格子內順便貼文供大家參考. Windows CE 開發人員在使用C語言開發軟體的時候要特別注意,當開啟文件的時候,文件的的路徑不能使用環境變數,也無法使用 . 符號代表目前目錄, 當開啟文件不指明完整路徑時,Windows CE 會從 \Windows 目錄以及跟目錄兩處搜尋,若找不到該文件則會產生系統錯誤訊息, 並不會從目前目錄搜尋指定文件, 若依需求需要尋找目前程式執行時期的所在目錄,可以透過 GetModuleFileName() 函數取得目前目錄後再串接該份文件作為開啟文件的完整路徑表示 例如: dwAbsPath = GetModuleFileName( NULL , szBuffer , MAX_BUFF_LEN); while( szBuffer[--dwAbsPath] != '\\')   ; szBuffer[dwAbsPath+1] = NULL; _tcscat(szBuffer , TEXT("MyDoc.doc");

使用Hyper-V Client 安裝 Compact 2013 Image

Windows Compact 2013內針對 PC-Based 模擬開發環境需求的開發人員提供了CEPC BSP與 Hyper-v/Virtual PC Client 的 CE Loader ,image 開發人員 將建置完成的 Compact 2013 image 透過網路bootp直接下載到 Hyper-V client 啟動,大致方法如下: 0. 提供 Hyper-V 服務的主機事先於 Hyper-V Manager 建立 Virtual Network Switch ( External ) 1. 透過 Hyper-V / Virtual PC 建立新的 虛擬機器 2. 使用 Compact 2013 所提供的 Virtal Hard Disk ( Wince800\platform\cepc\vm\hd0_sample.vhd 3. 啟動後便可透過內建的 EBoot  Loader 使用 Bootp 尋找開發主機上的 Image Bootp server 下載開發完成的 image 啟動 啟動 Hyper-V Client 使用Bootp 連結至開發端機器下載 nk.bin VS 2012 Platform Builder attach device 偵測到遠端 HyperV Client Bootp message後自動發送 image(nk.bin)   下載完畢,nk.bin 啟動後出現compact 2013畫面

Windows CE XIP

上課學員提問  何謂  eXecute In Place ( XIP ) Windows CE 對於記憶體的定義與一般桌上型 Windows OS 稍有不同, Windows CE Memory 泛指所有 RAM, ROM , FLASH 都屬於 Windows CE 作業系統的記憶體 在一般的設計上 若 image 採用壓縮方式儲存在ROM/FLASH內,執行時期則必須先透過解壓縮到RAM的記憶體區塊才能執行, 後續為了提供更多的可用記憶體,Windows CE支援XIP機制,ROM/Flash內的 image 採不壓縮方式寫入, 當應用程式需要執行時, 若 ROM/Flash支援 隨機存取與線性存取的話, 因為image 沒有壓縮, Process便可直接於儲存的空間內執行,無須透過重新載入 RAM記憶體區塊內執行,因而節省較多的RAM空間供系統與使用者使用 但一般的ROM/FLASH執行速度相較於RAM來說執行速度將較為緩慢,因此也造成系統的效能可能有下降的風險,因此XIP設計上普遍針對成本導向的一般消費產品應用較多,對於需要高效能或 real-time 相關的產品 比較少看到 XIP 的設計應用.
NK.BIN 形成的主要參數儲存在OSDesign專案中的bib配置檔內 其中主要有四個設定區塊 MEMORY CONFIG MODULES FILES 其中與NK.BIN形成最主要的設定是MEMORY與CONFIG 兩個區塊的配置 MEMORY區塊: 主要是配製NK.BIN於記憶體中的安排方式 格式如下: NAME(區塊名稱) Address(記憶體位置) Size Type 其中Type:宣告常見有下面型態:   FIXUPVAR: 該記憶體區快可以透過參數調整   NANDIMAGE: 標示該記憶體區快可以使用 NAND Flash 存放   RAM : 該記憶體區塊需使用ram 存放   RAMIMAGE: 標示該記憶體區段可以使用RAM或NOR Flash存放   RESERVED: 標示該記憶體區段為保留區塊 CONFIG 區塊: 提供附加選項 AUTOSIZE: 自動配置runtime所使用的記憶體 PROFILE: 提供Runtime的效能取樣功能 BOOTJUMP: 指定系統啟動的指令進入點 COMPRESSON: 指定nk.bin是否壓縮 KERNELFIXUPS: 指示核心是否需重新記憶體定位動作 RAMFLAGS: 設定核心運作時的特殊屬性 ROMSTART: 指定nk.bin ROM的起始位址 ROMWIDTH: 指定nk.bin ROM的位元寬度(8/16/32)與檔案數量 ROMSIZE: 指定ROM的大小

Windows Embedded Compact 7 之 User Mode Components --之 GWE user(gweuser.exe)

WEC7 相較於 CE 6 在 User Mode 的components多出了 GEW user 元件, 主要在提供 UI介面所需的 user notifications 功能,例如OOM訊息, windows 啟動訊息與觸控螢幕定位功能的互動需求,也就是說 GWE user將所有跟UI有關的功能都從 "Kernel "模式移入 "User"模式去運作了,想必可以更增加 WEC 7的系統穩定度 不過也因此造成原本在 CE6 所設計的應用程式若與 GEW Component有關的部分 再移植到 WEC 7的時候必須要修改這部分的 Source code, 對於 CE6 的 Developers 就要注意這部分異動了

WEC 7 之記憶體太多怎麼辦之介紹--OEMRAMTable

WEC7 與 CE6 使用同樣的 Kernel memory mapped 512MB , 所以若製造商的記憶體RAM > 512MB的時候, 就必須要修改 OAL 的Kernel Space mapping了 , 原本的 512MB 仍然使用  OEMAddressTable 去mapping,多出來的部分就要修改 OEMRAMTable / OEMDeviceTable 去對應給系統知道了 微軟提供最簡單的練習方式可以參考 CEPC 所附帶的BSP ,有興趣的童鞋 可以參考一下 \WINCE700\platform\common\src\x86\COMMON\startup\newtable 內所定義的 OEMRAMTable 與 OEMDeviceTable 內容 OEMAddressTable 加入 CE_NEW_MAPPING_TABLE 宣告系統有額外超出512MB記憶體 OEMRamTable 宣告  base_address , Size 與 memory type ( Cached ) OEMDeviceTable : 定義採用uncached 方式的記憶體存取模式,將記憶體對應至外部周邊設備

WEC7 之 compositor之 Alpha Blending

Windows embedded compact 7 的新功能Compositor支援 Alpha blending, 蝦蜜西  Alpha Blending呢? 所謂的 Alpha blending 在 Windows UI 介面中即是所稱的 Compositing, 在 UI 控制向中使用 Opacity 代表此項設定, Alpha 的值越大,代表越不透明, 視窗中常發生兩個視窗局部重疊再一起,當上層視窗的 alpha 值小於 1並趨近於零的時候,後方視窗的pixel 變會從底層透出來, Windows Embedded Compact 7 所宣稱的妞非糗有所謂的 Compositor 支援 alpha blending 簡單來說就是,WEC 7的視窗效果也可以支援跟WIN 7 一樣有透明視窗 的意思, 也增加了 transparent regions 支援 frame / over-impose 的視窗重疊更新機制,有效加速視窗處理效果

Windows CE 必備工具--DiskPrep

Windows CE image 建置完畢欲部署到裝置上執行之前,前置工作就是提供一個可開機的環境讓nk.bin能順利載入,Windows ce device上面 無論是使用 Hard Disk , USB Flash , CF 任何bootable storage都能透過 DiskPrep.exe 工具在 Storage Devices上面製作 Biosloader 提供 image 安裝與執行的能力 載點如下 http://archive.msdn.microsoft.com/DiskPrep

Windows Embedded Compact 7 特色

WEC 7 相較於 Windows Embedded CE 6的功能特色增加如下: 1. 支援 Multicore-Processor 2. 支援最多3GB實體記憶體 (  CE 6.0 支援實體記憶體為 512MB ) 3. 支援 DLNA(Digital Living Network Alliance) 4. 採用 silverlight 作為UI介面整合設計,提供較佳的介面設計環境 5. 提供更好的 觸控與手勢操作判別功能 6. 提供新版 Microsoft Office元件以及PDF瀏覽元件 7. 內建 Flash 10.1 轉譯元件( 無須額外授權費用 ) 8. 支援 MTP 9. 新版 IE for embedded ( 以 IE7為基礎,加上IE8 強化效能特徵) 10.提供強化版的 遠端除錯工具,讓開發時期的除錯更容易使用 11.提供 Windows Embedded Compact test kit 取代 6.0時期的 CETK工具 以上簡單列出 WEC 7.0 相較於 CE 6 的新特色供參考  

.NET Micro Framework Version 4.2 QFE 2 released

.NET MF Version 4.2 QFE  發行所新增/異動的功能 ===================================================== File system Improved FS performance and some minor bug fixes Added continuation to flush the FS cache at a configurable time Wear Leveling Reworked the Driver to fix some issues around bad block replacement improved diagnostics for wear leveling MicroBooter Changes to support unaligned ZI/RW sections RW/RO sections are no longer required to be contiguous Fixed SREC processor to support multiple BS devices and non-contiguous memory streams Read buffer is now only 512K instead of a block size Touch Screen Improved the Gesture Driver Fixed some minor issues with the touch driver moved the touch event structures, enums, and delegates assembly (Microsoft.SPOT.Native) Others Thumb-2 assembly code updated and global lock implemented SerialPort.DiscardBuffer fixed (flushes the correct buffer) SerialPort.Read no longer blocking if data is available. Faster loadign of large...

Book 書籍推薦: Expert .Net Micro Framework

NET Micro Framework 是專為超小型/隨身裝置/ 資源極為有限的嵌入式裝置所開發, 截至目前為止最新的發行版是 4.2版(2012-09-25),  4.3目前為 Beta版   與一般 .NET Framework 或是 .Net Compact Framework 不一樣的地方是. Net MF 與底層硬體直接綁定,甚至控制底層硬體,如此模式的設計 代表 可以讓 .NET 開發人員使用 .NET語言直接對嵌入式硬體做控制,達到類似以往的 PLC/ C語言結合的風格,讓產品開發時間比起使用C語言的架構能 更快速的設計與減低開發成本 .     有興趣了解 微軟 Embeddded .Net Micro Framework 的開發人員 可以參考下列書籍 Expert-Micro-Framework-Experts-Voice 可以透過下列設備進行實作練習 Netduino-Plus 測試開發實驗板

Windows Phone 7 書籍

兩本有關 Windows Phone 7的書籍,有興趣的人可以參考囉 http://www.amazon.com/Professional-Windows-Phone-Application-Development/dp/0470891661/ref=sr_1_5?s=books&ie=UTF8&qid=1319042396&sr=1-5 還有一本: Beginning Windows Phone 7 Development   更新:  Windows Phone 7.5 開發書籍 Essential Windows Phone 7.5: Application Development with Silverlight       

Windows Embedded Compact 7 所支援的 Codecs

1 BMP Yes 2 G.711 u & G.711a Yes 3 G.722.1 & SIREN Yes 4 GIF Yes 5 GSM610 Yes 6 ICO Yes 7 IMA ADPCM Yes 8 JPG Yes 9 MP3 decode (OEMs do not need a license from Thomson/Fraunhofer) Yes 10 MPEG1 video codec Yes 11 MPEG2 demultiplexer Yes 12 MPEG2 PS demultiplexer Yes 13 MPEG4 simple profile partial codec (included in WMV lib) Yes 14 MS ADPCM Yes 15 PNG Yes 16 SBC (SubBand Codec) which is part of the A2DP spec for Bluetooth No 17 TIFF No 18 VC-1 Decoder Yes 19 WMA Lossless Decoder Yes 20 WMA Professional Decoder Yes 21 WMA Standard Decoder Yes 22 WMA Voice Decoder Yes 23 WMV7 and WMV8 Decoder Yes 24 WMV9 Decoder Yes 25 WMV9 Encoder Yes 26 MPEG-4 Demultiplexer Yes 27 ASF Video and Audio Yes 28 AVI Yes

Books: Windows embedded Compact 7

Professional Windows Embedded Compact 7 Compact 7 書籍: 有興趣研究 WEC7的同學可以買來看看 ,不過內容架構跟前一版 Professional Windows CE 6 差不多, 大同小異,只有增加一部分 WEC 7的東西

EWF Memory Issues

使用 Enhanced Write Filter 最常遇到的問題便是 Memory Leaking問題 通常在使用 EWF 時最好注意下列幾項設定 使用 RAM / RAM Reg Mode 又需要讓設備處於 Long Running 時: 1. Disable Disk Defragement 2. Disable Disk Cache 3. 轉移 Event Log 寫入到 其他 Partition 4. 停用 Windows Update 機制設定 5. 提供一個可以寫入的 Partition 以供資料暫存 6. 盡可能預留一個可以重開機的機會 以上有任何新發現將會不定期更新

Windows System Programming 第四版

開發 windows / CE / XP  system application / Device Driver 必看的書籍 第四版

製作 Win CE X86 Boot Loader

在安裝有 Windows CE Platform builder 6.0的機器上,開啟左列列目錄 ,並執行 MakeImageDisk.exe 軟體 選取 CEPCBoot.144 檔案並準備一片 1.44M磁片後按開始即可制作標準 CEPC X86 Boot Loader(MS-DOS)