當前位置:首頁 » 安卓系統 » 安卓如何讀取pb文件

安卓如何讀取pb文件

發布時間: 2024-05-30 17:54:42

⑴ PowerBuilder 7.0 如何導入pb程序查看源碼

pb7的程序也是pbl文件,只不過有個環境文件pbw,雙擊pbw能夠打開這個工程,裡面是所有pbl文件,也能分別打開pbl文件,只要在pb中選擇文件就行 建議你不要用7了,如果用低版本,可以用6.5,用高版本

⑵ pb的配置文件如何應用

每次系統登陸,把當前登陸的用戶、密碼保存到配置文件,不管自動的還是手動的,都保存。
open的時候:
if now() < time'09:00:00' then
//取配置文件里的用戶、密碼
//登陸
//用戶、密碼保存配置文件。(當然,自動登陸保存配置文件可以不做,只手動做)
end if從用途方面分析,PB包含兩種配置文件。分別是源碼配置文件和鏡像配置文件。
一、源碼配置文件
源碼配置文件用於編譯源碼時使用。這里的源碼是指Windows
CE公開的源碼,如驅動程序、系統應用程序等。PB在編譯平台時將這些公開的源碼即時編譯並將編譯鏈接後的文件復制到平台工程子目錄里。記得前面講過PB在開始編譯時調用cebuild.bat批處理文件,cebuild.bat執行的一個步驟是針對_DEPTREES變數指定的所有目錄執行build.exe和sysgen.bat。build.exe在編譯源碼文件時會尋找當前目錄下存放的源碼配置文件,根據配置文件的信息來編譯和鏈接,產生EXE、DLL、LIB文件。CE的源碼文件所在的目錄中都包含了相應的配置文件,這些配置文件只對當前目錄或者子目錄的源碼有效,具體分為三種:

DIRS文件:文件內容和解釋如下:
DIRS:指定哪個子目錄的源碼要被編譯
DIRS_CE:只有為CE編寫的源碼才被編譯
OPTIONAL_DIRS:指定可選的目錄(很少使用這個選項),可以只編譯指定目錄而不是全部編譯。

SOURCES文件:通過宏定義來指定編譯和鏈接涉及到的文件,文件內容和解釋如下:
TARGETNAME:指定編譯鏈接產生的主文件名
TARGETTYPE:指定編譯鏈接產生的文件的類型(決定了擴展名)。文件共分三種:.lib(LIBRARY)和.dll(DYNLINK)和.exe(PROGRAM)。
TARGETLIBS:定義.lib鏈接文件,鏈接時需要這個文件。
SOURCES:源碼文件。包含擴展名為*.c或*.h
或*.cpp的文件。
EXEENTRY:.exe文件的執行代碼入口點。
sources.cmn文件是通用的SOURCES文件。在這個文件中可以指定作用於所有源碼文件的配置選項。

MAKEFILE文件:包含默認的編譯和鏈接選項
整個編譯和鏈接過程:build.exe收集編譯和鏈接需要的數據(源碼文件、鏈接文件、編譯和鏈接選項)產生一系列的內部環境變數,然後調用nmake.exe,nmake.exe根據內部環境變數執行編譯、鏈接,最後產生最終文件(*.lib
*.exe *.dll)。
二、鏡像配置文件:
鏡像配置文件用於在製作CE鏡像文件時使用。CE的鏡像文件擴展名為.bin。製作鏡像工具romimage.exe除了能夠產生.bin文件外,還能夠產生.abx和.sre文件。整個鏡像的製作過程由makeimg.exe控制,它調用cenlscmp.exe、fmerge.exe、res2.exe、txt2ucde.exe、regcomp.exe、romimage.exe等。這些工具大部分在前面已經介紹過了。鏡像配置文件類型有.bib、.reg、.db、.dat、.str。如果主文件名為Common,表示是通用的配置文件。如果主文件名為Platform,表示是某一個BSP的配置文件。如果主文件名是Project,表示是定製的一個平台的配置文件。在PB中修改配置文件前如果沒有把握最好先做好備份。
.bib(Binary image builder)

定義包含在內核鏡像中的文件和模塊的名稱、載入位置。主要的bib文件有Common.bib,Config.bib, Project.bib,
Platform.bib等。.bib文件內部分為幾個部分:
【MEMORY】用於定義有效的物理內存塊,在此將整個RAM分為幾個部分。
格式: 名稱 首地址 大小 內存類型
名稱: 內存區域的唯一名稱(RESERVE是預定義名稱,可以用多次,表示此區域保留)
首地址: 內存區域的首地址(十六進製表示)
大小: 內存區域的大小(十六進製表示)
內存類型:分為三種。
RAM: 運行所有進程的內存區域(整個區域必須是連續的,且不能含空洞)
RAMIMAGE:專用於保存鏡像的內存區域。(每個.bin中只能指定一個RAMIMAGE)
RESERVED:保留內存區域(這樣的區域一般用於驅動程序使用,如顯卡緩沖區、DMA緩沖區)
舉例:
;名稱 首地址 大小 內存類型
IF IMGRAM64
NK 80220000 009E0000 RAMIMAGE
RAM 80C00000 03000000 RAM
UMABUF 83C00000 00400000 RESERVED
ENDIF

註:整個內核的地址都是從0x8000 0000開始的。如果是x86系列的CPU,那麼物理內存地址與虛擬地址映射關系在oeminit.asm中指定。
【CONFIG】類似環境變數,PB預設置了一些配置變數。常用的配置及說明如下:
AUTOSIZE:
格式:AUTOSIZE = OFF | ON

默認值為OFF。在config.bib中的MEMORY部分定義了有效的內存區域,其中兩部分RAM、RAMIMAGE分別用於進程使用區域和保存鏡像區域。如果為ON,romimage.exe在創建nk.bin時將RAM和RAMIMAGE兩部分合並成一個部分,然後從最低地址開始保留RAMIMAGE大小的內存,其餘都作為RAM使用。
BOOTJUMP:
格式:BOOTJUMP = address | NONE

默認值為NONE。每次重新啟動CE內核,默認執行的代碼從RAMIMAGE的首地址開始。如果在BOOTJUMP指定一個地址(必須在RAMIMAGE范圍內),那麼將從指定的地址開始執行。
COMPRESSION:
格式:COMPRESSION = OFF | ON

默認值為ON。romimage.exe在創建內核時默認壓縮所有可寫部分。對於文件,默認全部壓縮。對於模塊(.exe、.dll),默認壓縮可寫部分。模塊的可寫部分包括數據段,也就是在模塊運行時一定載入到內存中的部分。如果模塊在.bib中定義時具有C屬性(表明壓縮模塊所有部分),那麼當前這個選項就忽略了。
FSRAMPERCENT:
格式:FSRAMPERCENT = number

默認值為0x80808080。指定為文件系統分配的內存的百分比。number分為四個位元組,由十六進製表示。
byte0的值(單位為4KB)表示在第一個2MB中,其中每1MB包含的4KB的整數倍。
byte1的值(單位為4KB)表示在第二個2MB中,其中每1MB包含的4KB的整數倍。
byte2的值(單位為4KB)表示在第三個2MB中,其中每1MB包含的4KB的整數倍。
byte3的值(單位為4KB)表示在剩下的內存中,每1MB包含的4KB的整數倍。

計算一下默認值0x80808080表示的百分比:0x80*4K/1M = 0.5,因為每個位元組都等於0.5,所以整個佔用的百分比是50%。
KERNELFIXUPS:
格式:KERNELFIXUPS = OFF | ON

默認值為ON。如果為ON,romimage.exe創建內核前重定位內核到RAM的開始位置。
OUTPUT:
格式:OUTPUT = path

指定romimaeg.exe將創建完成的內核文件nk.bin放置到的路徑。一般放置到%_FLATRELEASEDIR%下。
ROMFLAGS
格式:ROMFLAGS = Flags

設置內核選項的位掩碼,多個位掩碼可以組合使用。

0x0001 禁止按需分頁:EXE和DLL默認是按需分頁的。

0x0002
禁止全內核模式:進程運行在兩種模式下,用戶模式和內核模式。全內核模式下所有線程運行在內核模式。全內核模式能夠提高執行效率,但會增加系統的不穩定性。如果允許執行用戶程序,那麼不適合採用全內核模式。

0x00000010
只信任來自ROM的模塊(DLL、EXE)。默認ROM中的模塊和所有文件系統的模塊都是內核信任的。OEM能夠在OAL層實現對所有運行模塊的檢查,這個標志將忽略對來自ROM保存的模塊的檢查。

0x00000020 停止刷新TLB。這個標志僅用於運行在x86CPU上的內核。TLB(Translation Look-aside
Buffer),有人翻譯成變換索引緩沖區,它的作用是在虛擬地址和物理地址之間轉換。對於具有實時性的內核,這個標志應該設置。

0x00000040 按照/base鏈接選項中的地址載入DLL。這樣內核將不採用重定位載入DLL。不建議採用。
ROMSIZE
格式:ROMSIZE = size

指定內核鏡像的大小
ROMSTART
格式:ROMSTART = address

指定內核鏡像的首地址
ROMWIDTH
格式:ROMWIDTH = width

指定數據寬度,一般為32位
ROMOFFSET
格式:ROMOFFSET = address

指定偏移地址。
SRE
格式:SRE = OFF | ON

指定romimage.exe是否產生.src文件,一般燒錄ROM的程序能夠識別此文件。

註:config中絕大多數【CONFIG】選項不需要修改。凡是配置文件都可以使用IF/ENDIF
條件語句。
【MODULES】定義鏡像要包含的模塊並指定模塊(DLL、EXE)如何被載入到內存表中。
格式:模塊名稱 路徑 內存塊 類型

模塊名稱一般為模塊的真實名稱;路徑為當前文件所處的位置(路徑中指定的文件名和前面模塊名稱最好一致);內存塊是指這個模塊將被存放到哪個內存塊中,內存塊的定義見前面MEMORY部分;類型指定這個模塊將被存放的屬性,具體類型如下:

S:系統文件

H:隱藏文件

R:只壓縮模塊的資源部分(默認模塊是不壓縮的)

C:壓縮模塊所有部分

D:禁止調試

N:標志模塊是非信任的

P:忽略CPU類型

K:指定romimage.exe修正模塊(僅用於調試或者內核跟蹤)

X:指定romimage.exe對

熱點內容
編程123 發布:2024-11-26 19:52:52 瀏覽:949
python數組排序排序演算法 發布:2024-11-26 19:50:16 瀏覽:969
如保編程 發布:2024-11-26 19:29:58 瀏覽:812
我的世界手機版寶可夢生存多人伺服器 發布:2024-11-26 19:29:52 瀏覽:730
卡盟伺服器的象徵什麼意思 發布:2024-11-26 19:28:15 瀏覽:390
游戲平板安卓2000以下哪個好 發布:2024-11-26 19:21:12 瀏覽:547
php重命名文件夾 發布:2024-11-26 19:06:01 瀏覽:19
阿里雲ecs伺服器無法連接公網ip 發布:2024-11-26 19:01:32 瀏覽:43
java寫helloworld 發布:2024-11-26 19:00:56 瀏覽:90
c語言遞歸排列 發布:2024-11-26 18:50:55 瀏覽:449