當前位置:首頁 » 操作系統 » 25u源碼

25u源碼

發布時間: 2022-06-28 14:13:07

⑴ android 源碼里有u-boot嗎

本人用的android平台用的bootloader用的是uboot,貌似大多數手持設備平台都不用這個,因為功能過於強大用不上,反而顯得太復雜了。不知道這個平台開發者是怎麼想的。既然用了那就來分析一下,順便修改一下其中的幾個小問題,以符合我們的要求。
uboot等同於其他所有的bootloader程序,從根本上講是一個稍復雜的裸機程序,是最底層的東西,要分析裸機程序我們要從它的連接文件開始。連 接文件(.lds文件)定義了程序編譯之後整個連接過程,這樣我們就可以找到這個程序的第一句匯編代碼,進而來下一步分析。uboot的鏈接文件代碼在 android\bootable\bootloader\uboot-imx\u-boot.lds
[cpp] view plain
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") //文件輸出格式
OUTPUT_ARCH(arm)
ENTRY(_start) //首地址標示符
SECTIONS
{
. = 0x00000000; //其實地址0
. = ALIGN(4); //4位元組對齊
.text : //代碼段
{
board/freescale/mx6q_sabresd/flash_header.o (.text.flasheader) //第一個文件是board/freescale/mx6q_sabresd/flash_header.o
cpu/arm_cortexa8/start.o //第二個cpu/arm_cortexa8/start.o
board/freescale/mx6q_sabresd/libmx6q_sabresd.a (.text)
lib_arm/libarm.a (.text)
net/libnet.a (.text)
drivers/mtd/libmtd.a (.text)
drivers/mmc/libmmc.a (.text)
. = DEFINED(env_offset) ? env_offset : .;
common/env_embedded.o(.text)
*(.text) //剩餘的所有代碼
}
. = ALIGN(4);
.rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } //readonly data 段
. = ALIGN(4);
.data : { *(.data) } //所有的readonly data
. = ALIGN(4);
.got : { *(.got) }
. = .;
__u_boot_cmd_start = .; //u_boot_cmd段,裡面是所有uboot命令的一個列表
.u_boot_cmd : { *(.u_boot_cmd) }
__u_boot_cmd_end = .;
. = ALIGN(4);
_end_of_ = .;
__bss_start = .; //bss段 就是內存數據段
.bss : { *(.bss) }
_end = .;
}

從上面的代碼可以看出我們編譯生成的二進制應用程序組成是:代碼段->rodata段->uboot命令列表->bss段。我們啟動這個應用程序時候是從,0地址開始的,因此我們來看
board/freescale/mx6q_sabresd/flash_header.s這個文件。
這個文件中除了分配內存和宏定義的偽匯編指令以外,真正執行的命令有一條

[cpp] view plain
.section ".text.flasheader", "x"
b _start
.org CONFIG_FLASH_HEADER_OFFSET
也就是說,這個文件一執行就直接跳到_start 位置處。_start 在android\bootable\bootloader\uboot-imx\cpu\arm_cortexa8\ start.S中,因此我們來看這個文件代碼
[cpp] view plain
.globl _start
_start: b reset
這里直接跳轉的reset中接下來看
[csharp] view plain
reset:
/*
* set the cpu to SVC32 mode cpu設置成32位管理模式
*/
mrs r0, cpsr
bic r0, r0, #0x1f
orr r0, r0, #0xd3
msr cpsr,r0

#if (CONFIG_OMAP34XX) //因為我們的cpu不是ompa的 所以這段不會編譯
.............................
#endif
/* the mask ROM code should have PLL and others stable */
#ifndef CONFIG_SKIP_LOWLEVEL_INIT
bl cpu_init_crit
#endif
這里接下來執行cpu_init_crit
[csharp] view plain
/*************************************************************************
*
* CPU_init_critical registers
*
* setup important registers
* setup memory timing
*
*************************************************************************/
cpu_init_crit:
/*
* Invalidate L1 I/D
*/
mov r0, #0 @ set up for MCR
mcr p15, 0, r0, c8, c7, 0 @ invalidate TLBs
mcr p15, 0, r0, c7, c5, 0 @ invalidate icache

/*
* disable MMU stuff and caches //關閉mmu
*/
mrc p15, 0, r0, c1, c0, 0
bic r0, r0, #0x00002000 @ clear bits 13 (--V-)
bic r0, r0, #0x00000007 @ clear bits 2:0 (-CAM)
orr r0, r0, #0x00000002 @ set bit 1 (--A-) Align
orr r0, r0, #0x00000800 @ set bit 12 (Z---) BTB
mcr p15, 0, r0, c1, c0, 0

/*
* Jump to board specific initialization...
* The Mask ROM will have already initialized
* basic memory. Go here to bump up clock rate and handle
* wake up conditions.
*/
mov ip, lr @ persevere link reg across call
bl lowlevel_init @ go setup pll,mux,memory//執行lowlevel_init這個函數代碼在
@\bootloader\uboot-imx\board\freescale\mx6q_sabresd\lowlevel_init.S中
@主要對時鍾,外部ram,rom等進行了初始化代碼不貼了。
mov lr, ip @ restore link
mov pc, lr @ back to my caller
初始化完成後,接下來執行
[csharp] view plain
#ifndef CONFIG_SKIP_RELOCATE_UBOOT
relocate: @ relocate U-Boot to RAM 將uboot重新定位到內存中
adr r0, _start @ r0 <- current position of code
ldr r1, _TEXT_BASE @ test if we run from flash or RAM
cmp r0, r1 @ don't reloc ring debug測試當前代碼是否已經在內存中
beq stack_setup @如果在的話就直接跳轉到stack_setup

ldr r2, _armboot_start @如果不在的話,載入_armboot_start地址到r2中。_armboot_start是uboot執行的主體c函數。
ldr r3, _bss_start
sub r2, r3, r2 @ r2 <- size of armboot計算bss_start-armboot_start 保存到R2中,也就是uboot的總大小
add r2, r0, r2 @ r2 <- source end address 計算出uboot代碼和rodata地址

_loop: @ 32 bytes at a time //開始拷貝
ldmia r0!, {r3 - r10} @ from source address [r0]
stmia r1!, {r3 - r10} @ to target address [r1]
cmp r0, r2 @ until source end addreee [r2]
ble _loop
#endif /* CONFIG_SKIP_RELOCATE_UBOOT */

⑵ \u5927\u529b怎麼轉換成漢字 工具源碼

您好,\u5927\u529b這種編碼為Unicode編碼,轉換為漢字「大力」,推薦轉換工具:http://tool.chinaz.com/tools/unicode.aspx

linux 系統源碼盤怎麼安裝教程圖解

RedHat Linux是目前世界上使用最多的Linux操作系統。因為它具備最好的圖形界面,無論是安裝、配置還是使用都十分方便,而且運行穩定,因此不論是新手還是老玩家都對它有很高的評價。現在,RedHat Linux又出了9.0新版本,在原有的基礎上又有了很大的進步。它完善了圖形界面,增強了硬體的兼容性,安裝起來更加得心應手,尤其增強了多媒體方面的能力——新版本的XFree 4.0.1使你能夠在Linux下播放多媒體文件。它還採用了OpenSSL 128位加密技術,使你的網路通信更加安全;最新的內核;提供了USB介面的滑鼠和鍵盤的支持;提供了更加容易配置和管理的圖形桌面以及圖形界面的內核調整和防火牆配置工具。總之,不論你是一個新手還是一個Linux的老玩家,不論你是個人使用還是企業用伺服器,RedHat Linux 9.0都是你最好的選擇。 紅帽Red Hat Linux 9光碟啟動安裝過程圖解 一,准備工作 1,購買或下載Redhat9的安裝光碟(3張盤)或鏡像文件 2,在硬碟中至少留2個分區給安裝系統用,掛載點所用分區推薦4G以上,交換分區不用太大在250M左右比較適合,文件系統格式不論,反正安裝過程會重新格式化。 3,記錄下你電腦中下列設備型號∶滑鼠、鍵盤、顯卡、網卡、顯示器。及網路設置用到的IP地址、子網掩碼、默認網關和DNS名稱伺服器地址等信息。 二,安裝紅帽Red Hat Linux 9 將光碟機設為第一啟動盤,放入第一張安裝光碟後重新啟動電腦,如果你的光碟機支持自啟動, 如無意外將出現如下圖: 直接按回車鍵後將出現如下圖1 ,如果你不處理30秒後也會自動進入。 在圖1中提示:是否測試安裝CD的內容的完整性,選“OK”開始測試安裝CD;選“Skip”不測試安裝CD開始安裝出現圖6所示,如果是第一次安裝當然要測試安裝CD,選“OK”後回車,出現如下圖2 選“Test”測試安裝光碟的文件,選“Eject CD”測試光碟以外的安裝文件,這里我選擇“Test”後回車,出現如下圖3 正在測試第一張安裝CD,測試完後顯示如下圖4所示 看到上圖最後一行英文“It is OK to install from this media”說明這張安裝CD是OK的,按“Enter”鍵回車後,顯示如下圖5所示 選擇“Continue”並回車開始安裝。假如你想測試餘下的2張安裝CD,請放入下一張安裝CD到光碟機中,並選“Test”後回車即開始測試,完成後再次出現圖4畫面表示通過測試,再按回車鍵後又出現圖5所示,重復步驟直到完成全部安裝CD的測試。全部安裝CD的測試完成後,用“向右箭頭鍵”選擇 “Continue”並放入第一張安裝CD到光碟機後回車,安裝程序開始檢測計算機外圍硬體設備,接著出現如下圖6 出現幫助文本和介紹,按“Hide Help”關閉幫助文本,按“Release Notes”顯示發行注記,按“Next”進行下一步,出現如下圖7 這時滑鼠可用了,這一步選擇安裝向導所用語言(不是安裝系統所用語言),就選“簡體中文(簡體中文)”,點擊“下一步”後顯示如下圖8 選擇鍵盤類型,一般的鍵盤多為美式鍵盤“U.S English”,選擇好後,點擊“下一步”顯示如下圖9 根據你的滑鼠類型進行選擇,然後點擊“下一步”顯示如下圖10 選擇安裝類型,我這里選“個人桌面”,點擊“下一步”顯示如下圖11 磁碟分區設置是關鍵的一步,搞不好會丟失硬碟有用數據,請小心。如果選“自動分區”後,點擊“下一步”會顯示如下圖12 自動分區包含三個選項:刪除系統內所有的Linux分區、刪除系統內的所有分區和保存所有分區使用現有的空閑空間。由此看來這項選擇不適合我的需要,我的硬碟有4個分區,而第一個分區已安裝了Windows 98,我想保留它裝雙系統。於是點擊“上一步”返回到圖11所示畫面後再重新選擇“用Disk Druid手工分區”,點擊“下一步”顯示如下圖13 表中列出了硬碟的所有分區,我准備用原系統的D盤和E盤。即用/dev/hda5(4.8G)作掛載點安裝系統,用/dev/hda6(252M)做交換分區。點擊“/dev/hda5”將其選中(如上圖中),然後點擊“編緝”按鈕,彈出如下圖14所示的對話框。 掛載點選根分區“/”即可,當前文件系統類型是FAT,是Linux不支持的,因些選中“將分區格式化成”並在框內選“ext3”或“ext2”,如下圖15所示 點擊“確定”即可,在分區表中可見到已創建了掛載點。還要創建交換分區才能進行下一步安裝,接著在圖13所示分區表中點擊“/dev/hda6”把它選中,然後點擊“編緝”按鈕,彈出如下圖16所示的對話框。 因/dev/hda6是用來做交換分區,所以掛載點一欄不用選,只選“將分區格式化成swap”, 然後點擊“確定”即可。顯示如下圖17 在圖中可見到/dev/hda5和/dev/hda6的分區類型已經更改了。點擊“下一步”彈出如下圖18所示的對話框。 提示格式化兩個分區,點“格式化”按鈕後,顯示如下圖19 引導裝載程序配置,默認將系統引導信息寫到硬碟主引導扇區,可通過點擊右上角的“改變引導裝載程序”按鈕進行設置。上圖中列出了啟動菜單有兩項 ∶DOS和Red Hat Linux,可選中DOS然後點編輯,將DOS改為Windows 98;同樣將Red Hat Linux改為Red Hat Linux 9;改動後如下圖20 選擇開機默認啟動的系統(在其前面的囗內打勾),如上圖中選Red Hat Linux 9為默認啟動系統。然後點擊“下一步”出現如下圖21 設置網路,如果你不清楚亦可以後進系統後再配置,點擊“下一步”出現如下圖22 防火牆配置一般用途選“中級”就可以了,點擊“下一步”出現如下圖23 選擇系統默認語言一定要選中“Chinese(P.R.of China)”簡體中文,否則可能進系統後不能顯示簡體中文還需另外安裝語言支持包。在“選擇你想在該系統上安裝的其它語言”框內最少要選一項 “Chinese(P.R.of China)”簡體中文,可同時選擇多種語言(如果有必要)。點擊“下一步”出現如下圖24 時區選“亞洲/上海”,點擊“下一步”出現如下圖25 設置根口令即root管理員密碼,root帳號在系統中具有最高權根,平時登陸系統一般不用該帳號,設置完根口令後,點擊“下一步”出現如下圖26 個人桌面默認軟體包安裝選擇,一般用途使用默認的就夠用。亦可在安裝完成後,進系統運行“RedHat-config-package”工具來添加/刪除軟體。點擊“下一步”出現如下圖27 安裝向導到此結束,如果你對上面各個步驟還有異議可直點“上一步”返回後重新設置, 否則點“下一步”後再無“上一步”選擇,程序不可亦。 要開始安裝請點擊“下一步”,出現如下圖28 一個慢長的安裝過程已經開始,你可休息約30分鍾了。總進度去到約75%時,出現如下圖29 第一張光碟中要安裝的內容已完成,提示插入第二張光碟,插入第二張光碟後點“確定”後繼續安裝,到總進度去到約96%時,按提示換第三張光碟,完成後出現如下圖30 建議創建引導盤,將去除防寫的空白軟盤放入軟碟機中,點擊“下一步”,出現如下圖31 正在創建引導盤,完成後出現如下圖32所示 核對安裝程序檢測的顯卡型號是否與你的真實顯卡型號是否相同,如果不同請正確選擇,然後點擊“下一步”,出現如下圖33 核對安裝程序檢測的顯示器型號是否與你的真實顯示器型號是否相同,如果不同請正確選擇,然後點擊“下一步”,出現如下圖34 選擇色彩深度和屏幕解析度,然後點擊“下一步”,出現如下圖35 安裝已完成,取出光碟和軟盤後點“退出”,系統將重新啟動,重新啟動後將首次出現啟動選擇菜單,如下圖36 10秒後自動進入,出現如下圖37 第一次啟動還是進入命令提示,要求輸入用戶名,現在系統只有一個帳號即管理員帳號,默認的管理員帳號名為root,輸入“root”後回車,出現如下圖38 提示輸入密碼,輸入安裝時設定的系統管理員密碼後回車,出現如下圖39 已經以管理員身份登陸了系統,但我不想用命令提示形式顯示,要進入圖形介面.進入圖形介面的命令是“startx”,輸入“startx”後回車准備進入,出現如下圖40 怎麼搞?又跳出來!原來X配置出問題,需運行“RedHat-config-xfree86”重新配置,運行“redhat-config-xfree86”後出現如下圖41 點擊“配置”對顯示器及顯卡的型號和參數重新設置,如不能確定也可點系統默認設置,完成後點“確定”後如配置正確即可進入圖形界面,出現如下圖42 再次出現登陸窗口,輸入“root”後回車,出現如下圖43 再輸入密碼後回車,出現如下圖44 原來已經以root的身份進入了桌面,不過好像錯過了設置普通帳號那一步,於是點紅帽子主菜單--注銷,在彈出的對話框中選“重新啟動”,重新啟動後又再出現啟動選擇菜單,接著出現如下圖45 本來應該早出現的東西現在才出現,點“前進”開始配置系統,出現如下圖46 創建一個普通帳號,用於平時登陸系統用,帳號名用abc,輸入密碼後,點“前進”出現如下圖47 正確設置時間和日期後,點“前進”出現如下圖48 注冊提示,有兩項選擇,第一項:“是,我想在 Red Hat 網路注冊我的系統”,第二項:“否,我不想注刪我的系統”。以後再說,選第二項:“否,我不想注刪我的系統”,點“前進”出現如下圖49 如果你有其它光碟想安裝,就裝啦。點“前進”出現如下圖50 全部設置已經結束,點“前進”出現如下圖51 安裝全部完成,現在以abc用戶的身份進入了系統。以後進入系統都是圖形界面了。慢慢分享一下啦! 三、卸載RedHat9系統的方法: 進入DOS下在提示符“A:>_”下輸入“fdisk/mbr”回車,重寫硬碟主引導扇區即可,重啟後就沒有了Redhat9的啟動菜單了,再格式化Redhat9所在的分區就完事!

⑷ 如何打開網頁源代碼

參考下面方法查看:

操作工具:ie瀏覽器,電腦win7。

1、首先打開電腦的ie瀏覽器進去,如下圖所示。

網站源碼主要作用

生成目標代碼,即計算機可以識別的代碼,對軟體進行說明,即對軟體的編寫進行說明。為數不少的初學者,甚至少數有經驗的程序員都忽視軟體說明的編寫,因為這部分雖然不會在生成的程序中直接顯示,也不參與編譯。

但是說明對軟體的學習、分享、維護和軟體復用都有巨大的好處。因此,書寫軟體說明在業界被認為是能創造優秀程序的良好習慣,一些公司也硬性規定必須書寫。需要指出的是,源代碼的修改不能改變已經生成的目標代碼。如果需要目標代碼做出相應的修改,必須重新編譯。

⑸ 源碼文件怎麼打開

用相應的軟體打開,推薦用visual studio等寫程序的軟體

⑹ 在哪可以下載Linux內核各個版本的源碼

1、u-boot下載

ftp://ftp.denx.de/pub/u-boot/
2、內核下載
www.kernel.org
3、busybox下載
www.busybox.net

有著三個東西你就可以製作自己的一個系統。

⑺ 的linux源碼和uboot源碼是開源的么

Linux 不光核心系統是開源的,正規的 GNU/Linux 的要求是整個系統也都是開源的。
不過這不是絕對的,SUSE 企業版,Mandriva PowerPack ,以及一些系統,裡面會有不開源的的東西存在,但大部分都開源。
你可以認為,所有的 GNU/Linux 都是完全開源的。
他們的源代碼都可以在官方網站下載,或者藉助他們的軟體包管理器在軟體源中下載。

開源的系統不光 Linux ,常見的還有 BSD ,BSD 的更加開放,因為他的源代碼允許商業化修改後閉源再發布,這比 GNU GPL 對於商業友好不知多少倍。當然也有不少無恥的公司,拿來直接閉源再發布騙錢的。

之後還有 MAC OS X ,他的底層系統 darwin 是開源的,不過協議不同於一般的開源。但他的界面是不開源的,所以就有了 GNU/darwin ,底層 darwin ,上層 GNU 軟體。

還有 openSolaris ,開源的 UNIX 。

剩下的還有一些,就不如上面的廣泛了。

⑻ Linux操作系統基礎

你可以搜索關於LAMP這個構架的伺服器安裝教程,網路一下多如牛毛。
我覺得搭建環境之前,起碼你應該熟悉linux下的基本操作。
如果你連下載,解壓,源碼編譯,依賴關系都搞不清楚。建議你還是先
從命令學起,對linux系統有一定了解後,再來搭建平台,這樣學起來也
會很快。

⑼ 求網頁判斷源碼

varbrowser={
versions:function(){
varu=navigator.userAgent,app=navigator.appVersion;
return{//移動終端瀏覽器版本信息
trident:u.indexOf('Trident')>-1,//IE內核
presto:u.indexOf('Presto')>-1,//opera內核
webKit:u.indexOf('AppleWebKit')>-1,//蘋果、谷歌內核
gecko:u.indexOf('Gecko')>-1&&u.indexOf('KHTML')==-1,//火狐內核
mobile:!!u.match(/AppleWebKit.*Mobile.*/),//是否為移動終端
ios:!!u.match(/(i[^;]+;(U;)?CPU.+MacOSX/),//ios終端
android:u.indexOf('Android')>-1||u.indexOf('Linux')>-1,//android終端或uc瀏覽器
iPhone:u.indexOf('iPhone')>-1,//是否為iPhone或者QQHD瀏覽器
iPad:u.indexOf('iPad')>-1,//是否iPad
webApp:u.indexOf('Safari')==-1//是否web應該程序,沒有頭部與底部
};
}(),
language:(navigator.browserLanguage||navigator.language).toLowerCase()
}

window.onload=function(){
if(browser.versions.mobile){//判斷是否是移動設備打開。browser代碼在下面
varua=navigator.userAgent.toLowerCase();//獲取判斷用的對象
if(ua.match(/MicroMessenger/i)=="micromessenger"){
//在微信中打開
}
if(ua.match(/WeiBo/i)=="weibo"){
//在新浪微博客戶端打開
}
if(ua.match(/QQ/i)=="qq"){
//在QQ空間打開
}
if(browser.versions.ios){
//是否在IOS瀏覽器打開
}
if(browser.versions.android){
//是否在安卓瀏覽器打開
}else{
//否則就是PC瀏覽器打開
}
}

⑽ U-Boot源代碼目錄結構解析說明

U-Boot源代碼結構清晰,按照CPU以及開發板進行安排。進入U-Boot源碼目錄,可以看到如下的一些目錄(省略了其它文件),常見的重要目錄的說明如表1.1所示。

你聽說過周立功的嗎?

熱點內容
途觀與探岳哪個配置高 發布:2024-11-15 23:30:39 瀏覽:517
dhcp伺服器如何更新ip地址 發布:2024-11-15 23:18:40 瀏覽:125
ai清除緩存 發布:2024-11-15 23:12:38 瀏覽:602
電腦版我的世界如何退出伺服器 發布:2024-11-15 23:00:39 瀏覽:312
哪裡有存儲器零售商 發布:2024-11-15 22:55:42 瀏覽:46
手機如何設置鎖屏密碼個性 發布:2024-11-15 22:44:08 瀏覽:417
mysql導入存儲過程 發布:2024-11-15 22:43:18 瀏覽:638
net連接資料庫代碼 發布:2024-11-15 22:40:16 瀏覽:61
編程計算nk 發布:2024-11-15 22:35:07 瀏覽:833
資料庫第一章 發布:2024-11-15 22:27:07 瀏覽:593