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

tftp源碼

發布時間: 2024-06-15 16:34:09

① 如何編譯hi3520d sdk

第一章 Hi3520D_SDK_Vx.x.x.x版本升級操作說明
如果您是首次安裝本SDK,請直接參看第2章。

第二章 首次安裝SDK
1、hi3520D SDK包位置
在"hi3520D_V100R001***/01.software/board"目錄下,您可以看到一個 hi3520D_SDK_Vx.x.x.x.tgz 的文件,
該文件就是hi3520D的軟體開發包。
2、解壓縮SDK包
linux伺服器上(或者一台裝有linux的PC上,主流的linux發行版本均可以),使用命令:tar -zxf hi3520D_SDK_Vx.x.x.x.tgz ,
解壓縮該文件,可以得到一個hi3520D_SDK_Vx.x.x.x目錄。
3、展開SDK包內容
返回hi3520D_SDK_Vx.x.x.x目錄,運行./sdk.unpack(請用root或sudo許可權執行)將會展開SDK包打包壓縮存放的內容,請按照提示完成操作。
如果您需要通過WINDOWS操作系統中轉拷貝SDK包,請先運行./sdk.cleanup,收起SDK包的內容,拷貝到新的目錄後再展開。
4、在linux伺服器上安裝交叉編譯器
1)安裝uclibc交叉編譯器(注意,需要有sudo許可權或者root許可權):
進入hi3520D_SDK_Vx.x.x.x/osdrv/toolchain/arm-hisiv100nptl-linux目錄,運行chmod +x cross.install,然後運行./cross.install即可。
2) 安裝glibc交叉編譯器(注意,需要有sudo許可權或者root許可權,暫時不支持glibc版本):
進入hi3520D_SDK_Vx.x.x.x/osdrv/toolchain/arm-hisiv200-linux目錄,運行chmod +x cross.install,然後運行./cross.install即可。
3) 執行source /etc/profile, 安裝交叉編譯器的腳本配置的環境變數就可以生效了,或者請重新登陸也可。
5、編譯osdrv
參見osdrv目錄下readme
6、SDK目錄介紹
hi3520D_SDK_Vx.x.x.x 目錄結構如下:
|-- sdk.cleanup # SDK清理腳本
|-- sdk.unpack # SDK展開腳本
|-- osdrv # 存放操作系統及相關驅動的目錄
| |-- busybox # busybox源代碼
| |-- drv # drv源代碼
| |-- kernel # linux內核源代碼
| |-- pub # 編譯好的鏡像、工具、drv驅動等
| |-- rootfs_scripts # rootfs源代碼
| |-- toolchain # 交叉編譯器
| |-- tools # linux工具源代碼
| |-- uboot # uboot源代碼
| `-- Makefile # osdrv Makefile
|-- package # 存放SDK各種壓縮包的目錄
| |-- osdrv.tgz # linux內核/uboot/rootfs/tools源碼壓縮包
| |-- mpp.tgz # 媒體處理平台軟體壓縮包
| `-- image # 可供FLASH燒寫的映像文件,如內核、根文件系統
|-- scripts # 存放shell腳本的目錄
|-- mpp # 存放媒體處理平台的目錄
|-- component # 組件源代碼
|-- extdrv # 板級外圍驅動源代碼
|-- include # 對外頭文件
|-- ko # 內核模塊
|-- lib # release版本庫以及音頻庫
|-- tools # 媒體處理相關工具
`-- sample # 樣例源代碼

第三章、安裝、升級hi3520DDEMO板開發開發環境
# 如果您使用的hi3520D的DEMO板,可以按照以下步驟燒寫u-boot,內核以及文件系統,以下步驟均使用網路來更新。
# 通常,您拿到的單板中已經有u-boot,如果沒有的話,就需要使用模擬器進行燒寫。
# 更詳細的操作步驟及說明,請參見01.software\board\documents目錄下的《Linux開發環境用戶指南》。
# 以下操作假設您的單板上已經有u-boot,使用網口燒寫uboot、kernel及rootfs到Flash中。
# Demo單板默認為從SPI Flahs啟動。
1、配置tftp伺服器
# 可以使用任意的tftp伺服器,將package/image_uclibc(或image_glibc)下的相關文件拷貝到tftp伺服器目錄下。

2、參數配置
# 單板上電後,敲任意鍵進入u-boot。設置serverip(即tftp伺服器的ip)、ipaddr(單板ip)和ethaddr(單板的MAC地址)。
setenv serverip xx.xx.xx.xx
setenv ipaddr xx.xx.xx.xx
setenv ethaddr xx:xx:xx:xx:xx:xx
setenv netmask xx.xx.xx.xx
setenv gatewayip xx.xx.xx.xx
ping serverip,確保網路暢通。
3、燒寫映像文件到SPI Flash
以16M SPI Flash為例。
1)地址空間說明
| 1M | 4M | 11M |
|---------------|---------------|---------------|
| boot | kernel | rootfs |
以下的操作均基於圖示的地址空間分配,您也可以根據實際情況進行調整。
2)燒寫u-boot
sf probe 0
mw.b 82000000 ff 100000
tftp 0x82000000 u-boot-hi3520D.bin
sf probe 0
sf erase 0 100000
sf write 82000000 0 100000
reset
3)燒寫內核
mw.b 82000000 ff 400000
tftp 82000000 uImage_3520d
sf probe 0
sf erase 100000 400000
sf write 82000000 100000 400000
4)燒寫文件系統
mw.b 82000000 ff b00000
tftp 0x82000000 rootfs_3520d_64k.jffs2
sf erase 500000 b00000
sf write 82000000 500000 b00000
5)設置啟動參數
setenv bootargs 'mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1M(boot),4M(kernel),11M(rootfs)'
setenv bootcmd 'sf probe 0;sf read 0x82000000 0x100000 0x400000;bootm 0x82000000'

sa

4、啟動新系統
reset # 重啟進入新系統。
第四章、開發前環境准備
1、管腳復用
與媒體業務相關的管腳復用都在mpp/ko_hi3520D目錄下的sh腳本中配置,如果與實際情況不符請直接修改,此腳本被load3520D調用,在載入mpp內核模塊之前被執行;
mpp之外的其他管腳復用統一在uboot中配置,詳細說明請參見《U-boot移植應用開發指南》。

第五章、使用SDK和DEMO板進行開發
1、開啟Linux下的網路
# 設置網路
ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx;
ifconfig eth0 xx.xx.xx.xx netmask xx.xx.xx.xx;
route add default gw xx.xx.xx.xx
# 然後ping一下其他機器,如無意外,網路將能正常工作。
2、使用NFS文件系統進行開發
# 在開發階段,推薦使用NFS作為開發環境,可以省去重新製作和燒寫根文件系統的工作。
# 掛載NFS文件系統的操作命令:
mount -t nfs -o nolock -o tcp xx.xx.xx.xx:/your-nfs-path /mnt
# 然後就可以在/mnt目錄下訪問伺服器上的文件,並進行開發工作。
3、開啟telnet服務
# 網路正常後,運行命令 telnetd& 就可以啟動單板telnet服務,然後才能使用telnet登錄到單板。
4、運行MPP業務
# 在單板linux系統下,進入mpp/ko目錄,載入KO
cd mpp/ko
./load3520D -i

# 進入各sample目錄下執行相應樣常式序(sample需要先在伺服器上成功編譯過)
cd mpp/sample/vio
./sample_vio 0

第六章 地址空間分配與使用
1、DDR內存管理說明
1)所有DDR內存中,一部分由操作系統管理,稱為OS內存;另一部分由MMZ模塊管理,供媒體業務單獨使用,稱為MMZ內存。
2)OS內存起始地址為0x80000000,內存大小可通過bootargs進行配置,例如第三章中的setenv bootargs 'mem=64M ... ',表示分配給操作系統內存為64M,您可以根據實際情況進行調整。
3)MMZ內存由MMZ內核模塊管理(mpp/ko_hi35xx目錄下的mmz.ko),載入mmz模塊時,通過模塊參數指定其起始地址及大小,例如:
insmod mmz.ko mmz=anonymous,0,0x84000000,186M:jpeg,0,0x8fa00000,5M anony=1 || report_error
表示mmz兩塊區域,區域一的名稱為anonymous,起始地址為0x84000000,大小為186M;區域二的名稱為jpeg,起始地址為0x8fa00000,大小為5M。
您可以通過修改mpp/ko_hi35XX目錄下load3520D腳本中的mmz模塊參數,來修改其起始地址和總大小。
4)請注意MMZ內存地址范圍不能與OS內存重疊。
2、DEMO板DDR內存管理示意
1) 以容量為256MBytes的DDR內存為例,以下為根據本文檔和SDK默認配置得到的內存管理示意圖:

DDR:

-----|-------| 0x80000000 # Memory managed by OS.
64M | OS |
| |
-----|-------| 0x84000000 # Memory managed by MMZ block anonymous.
187M | MMZ |
| |
-----|-------| 0x8fa00000 # Memory managed by MMZ block jpeg.
5M | |
| |
-----|-------| 0x8ff00000 # Not used.
1M | |
| |
-----|-------| 0x90000000 # End of DDR.

注意:
(1)用戶在配置啟動參數時需要設置OS的管理內存為64M,「setenv bootargs 'mem=64M ...」。
(2)系統啟動後,配置load3520D的腳本中mmz的管理內存為191M,「insmod mmz.ko mmz=anonymous,0,0x84000000,186M:jpeg,0,0x8fa00000,5M anony=1 || report_error」。

② curl和libcurl的區別簡介

curl簡介

curl是利用URL語法在命令行方式下工作的開源文件傳輸工具。
它支持很多協議:DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP,
LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP。
curl同樣支持SSL證書,HTTP POST, HTTP
PUT,FTP上傳,基於表單的HTTP上傳,代理(proxies)、cookies、用戶名/密碼認證(Basic, Digest,
NTLM等)、下載文件斷點續傳,上載文件斷點續傳(file transfer resume),http代理伺服器管道(proxy
tunneling)以及其他特性。
curl是瑞典curl組織開發的,curl的官網是http://curl.haxx.se/,可以從官網獲取它的源代碼和相關說明。

libcurl簡介

libcurl為一個免費開源的,客戶端url傳輸庫,支持DICT, FILE, FTP, FTPS, Gopher, HTTP,
HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP,
SMTP, SMTPS, Telnet and TFTP等協議。
同curl一樣,libcurl也支持SSL證書,HTTP POST, HTTP
PUT,FTP上傳,基於表單的HTTP上傳,代理(proxies)、cookies、用戶名/密碼認證(Basic, Digest,
NTLM等)、下載文件斷點續傳,上載文件斷點續傳(file transfer resume),http代理伺服器管道(proxy
tunneling)等。

libcurl是高度可移植的,可以工作在不同的平台上,支持Windows,Unix,Linux等。

libcurl是免費的,線程安全的,IPV6兼容的,同事它還有很多其他非常豐富的特性。libcurl已經被很多知名的大企業以及應用程序所採用。
可以在這里獲取libcurl的源碼及相關文檔。

curl與libcurl對比

相同點

curl和libcurl都可以利用多種多樣的協議來傳輸文件,包括HTTP, HTTPS, FTP, FTPS, GOPHER, LDAP, DICT, TELNET and FILE等。

不同點

curl是命令行工具,可以通過shell或腳本來運行curl。curl底層所使用的庫是libcurl。
libcurl是一個庫,通常與別的程序綁定在一起使用,如命令行工具curl就是封裝了libcurl庫。所以我們也可以在你自己的程序或項目中使用libcurl以獲得類似CURL的強大功能。接下來將要介紹的PHP擴展就是對curl的一個封裝。

③ 可以訪問網站的協議有幾種

http又稱超文本傳輸協議。所有www文件都要遵守這個協議。也就是說你說的網站訪問協議都是建立在http基礎上的。但如果說網路協議那就多得去了。。。Active User(活動用戶):一個發現當前登錄用戶的協議,可是不要對它期望太高。Character Generator協議規范:一個小協議,看起來沒有什麼用處。有時候我都不知道為什麼要發明這么多協議。是不是有意不讓我們考試過關?CIP傳輸協議規范:通過這個協議我們可以了解到如何利用現有的技術快速構造應用層協議,挺有用的。Daytime協議:有些協議真不大,看看也沒有害處,知道不是所有的協議都是那麼可怕的(同時又是很有意思的)。DHCP協議規范:對於配置無盤站,深入理解NT的DHCP Server的工作過程有幫助。它是對BOOTP協議的擴充,如果有BOOTP的基礎理解起來更方便。DNS協議規范:DNS或許是Internet中最常用的部分了,看看它的機理吧,會有好處的。<VC++源代碼下載1>和<VC++源代碼下載2>Echo協議規范:這是我見過的最簡單的協議,看看也花不了一分鍾時間。FTP協議規范:是一個老協議了,不過用得還是挺多。ICMP協議規范:一種用於網路管理的協議。對照它您可以想一想PING命令實現的機理。 IP協議規范:上面是TCP,下面是IP,這兩個協議可以說是互聯網的基礎。IPv6協議規范:雖然是新一代的IP協議,但是它和原來的IP協議並不兼容。有些問題還是挺討厭的。LMTP協議規范:對於區域網內傳送電子郵件,這可能是一個最好的選擇,這種郵件傳送方式不能用於廣域網,因此也一般不在Internet上使用。POP3協議規范:我們通常用於接收電子郵件的協議。我們要配置的什麼POP3,就是這個東西。<VC++源代碼下載>PPP協議規范:這個協議比較有用,我們撥號時用的就是這個協議。PPP Internet協議控制協議:這個協議,對我們一些不是搞這個的也是十分陌生,有機會再看不遲。 RPC協議2:這個協議是一個夠年頭的協議SLIP協議規范:用於串列線路的一個協議標准,如果只是用於沖浪,不用看了,可是對於開拓視野還是十分有用的。SMTP協議規范:發送電子郵件時必須遵守的協議,如果不配置它,無法發送電子郵件,但是配置的時候有些小竅門,或許在讀完這個協議後您才會知道。<VC++源代碼下載>SMTP服務擴展標准:SMTP服務雖然出色,可是對它的擴展也是必不可少的,想在網路上一顯身手的,看看它可以對您的第一步起幫助作用。SOAP協議規范:一個利用HTTP傳輸XML的協議,是Windows 2000 DNA的核心,看一看大有好處。TCP協議規范:我們現在所知道的這些協議,什麼HTTP啦的基礎都是這個TCP,如果不清楚TCP那麼誰也不敢說自己知道互聯網是個什麼東西。TELNET協議規范:遠程登錄時遵守的協議標准,雖然現在WWW方式越來越多,可是遠程登錄仍然必不可少。TFTP協議規范:這個協議是一個簡單的FTP協議,不要小看它,有時候它還是挺有用的。Time協議:不要小看時間,如果我們不知道時間不知道會發生什麼,可是機器不知道時間是絕對不行的,在進行VC編譯時,你想過機器時間的作用嗎?你想過如果是分布式編譯時會發生什麼嗎?UDP協議規范:不長,看看有好處。以太地址解析協議:這不是ARP協議,而是一個通用協議範本。在NetBIOS上傳送IP報文的協議標准:如果正在研究NT或網路協議方面的知識,看看有幫助,如果只是對電腦發燒,不用浪費時間了。在ISDN上使用PPP協議:不要以為ISDN看起來那麼熟悉,在它上面使用的協議和標准實在太多,這里只介紹一個。拋棄協議規范:這年月的協議真是奇怪,不長,也沒什麼用,可還是協議,看看開開眼界吧。引用day協議規范:又是一個小協議,有時間就看看吧。多連接多結點PPP組(Bundle)發現協議:這個協議工作在伺服器端,可能對大部分用戶來說,用處就不大了。基於TCP/IP網路的管理結構和標記:它是以後SNMP協議及其它網路管理協議的基礎,看看有好處。 參考地址 http://ke..com/view/16603.htm

④ 請簡述路由器的基本配置有哪些

路由器的基礎常識
路由源碼C表示直連(Connected)路由,即目的網路直接與路由器的埠相連,S表示靜態(Static)路由;I表示使用IGRP獲得的路由信息,O表示使用OSPF協議獲得的路由信息;R表示使用RIP獲得路由信息,i表示使用IS-IS協議獲得路由信息,B表示使用BGP獲得路由信息,E表示使用EGP獲得路由信息。

路由器最常用的權值有:帶寬(Bandwidth)、時延(Delay)、負載(load)、可靠性(reliability)、跳數(Hop Count)、滴答數(Ticks)、花費(Cost).

路由器的基本配置
路由器的工作模式:用戶模式Router>、特權模式Router#、全局配置模式Router(config)#、介面配置模式Router(config-if)#、虛擬終端配置模式Router(config-line)#、RIP和OSPF等動態路由協議配置模式Router(config-router)#、設置模式和Rxboot模式.
在全局配置模式Router(config)#,使用命令line vty 0 15進入虛擬終端配置模式Router(config-line)#,然後使用命令password7<password>配置遠程登錄加密口令。
從路由器復制配置文件到TFTP Server,在特權用戶模式下,使用write network tftp命令。
在特權用戶模式下,使用 running-config tftp命令復制running-config文件到TFTP Server.
在特權用戶模式下,使用 bootflash:tftp:命令復制bootflash中的配置文件到TFTP Server.
在特權用戶模式下,使用 tftp:running-config命令將TFTP Server上的配置文件復制到路由器。
在特權用戶模式下,使用 tftp:bootflash:命令將TFTP Server上的文件復制到bootflash。

在全局配置模式下,使用命令hostname<name>修改路由器的主機名。
在全局配置模式下,使用命令enable password<password>配置超級用戶明文口令。
在全局配置模式下,使用命令enable secret 5<password>配置超級用戶加密口令。
在全局配置模式下,使用命令enable password7<password>配置超級用戶加密口令。
在特權用戶模式下,使用命令calendar set<hh:mm:ss day month year>修改系統時間。
使用exit命令可以從埠模式返回至全局模式,或者從全局模式返回至特權用戶模式。使用命令end可以從埠模式直接返回至特權用戶模式。
在特權用戶模式下,使用命令write memory命令將路由器的配置保存到非易矢RAM(NVRAM)中,使用命令write network tftp命令將路由器的配置保村道TFTP伺服器中。
在特權用戶模式下,使用命令write erase命令將刪除路由器的全部配置。
在用戶模式下使用命令Telnet<IP>從本地路由器登陸到該ipsuo指定的路由器,一台路由器可支持5個Telnet連接,即vty0-4.
在用戶模式或特權用戶模式下,使用命令ping,IP|DNS>判別網路的聯通情況,以及根據結果連接路徑的可靠性、鏈路的延遲時間和目的主機是否可以到達。感嘆號!表示每一個成功的響應;一個或多個小數點.表示本地路由器沒有在規定的時間內收到對方響應的數據包。
在用戶模式或特權用戶模式下,使用命令trace<IP|DNS>路徑路徑上每一級路由器的工作情況、延遲時間等、如果路徑中任何一台路由器不可達,則出現3個星號(***),用星號取代路由器名,此時,trace命令將繼續嘗試到達下一步,直到使用【Ctrl+Shift+6+X】組合鍵退出。
在用戶模式下,分別使用命令show clock、show flash、show version查看路由器系統時鍾、FLASH的使用情況,系統的軟體和硬體版本。
在特權用戶模式下,分別使用命令show configuration、show ip route、show ip protcols查看路由器的配置文件、路由表、IP路由協議的詳細詳細等。

熱點內容
充值運行編程 發布:2024-06-28 14:09:04 瀏覽:108
拆手機存儲器 發布:2024-06-28 13:39:06 瀏覽:560
伺服器電腦能同時用嗎 發布:2024-06-28 13:39:01 瀏覽:954
榮耀戰力安卓qq區哪裡最低 發布:2024-06-28 13:36:00 瀏覽:406
java多線程變數 發布:2024-06-28 13:28:38 瀏覽:578
編程貓里元始 發布:2024-06-28 13:19:40 瀏覽:811
apache外網無法訪問 發布:2024-06-28 13:04:27 瀏覽:918
ip雷達查游戲伺服器 發布:2024-06-28 13:03:36 瀏覽:215
如何在文件里改配置 發布:2024-06-28 12:52:00 瀏覽:59
手機編程視頻教程 發布:2024-06-28 12:47:09 瀏覽:265