




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第4章交叉開發環境4.1交叉編譯
4.2交叉開發環境
4.3交叉開發工具組成
4.4宿主機與目標機之間的通信方式
4.5交叉開發環境建立
4.6基于UP-NETARM2410-S開發平臺交叉開發環境建立4.7交叉編譯和交叉調試實例
本章小結
4.1交叉編譯
交叉編譯這個概念的出現和流行是和嵌入式系統的廣泛發展同步的。常用的計算機軟件都需要通過編譯的方式,把使用高級計算機語言編寫的代碼(比如C代碼)編譯成計算機可以識別和執行的二進制代碼。比如在Windows平臺上,可使用VisualC++?開發環境編寫程序并編譯成可執行程序。這種方式下,我們使用PC平臺上的Windows工具開發針對Windows本身的可執行程序,這種編譯過程稱為本機編譯。
然而,在進行嵌入式系統的開發時,運行程序的目標平臺通常具有有限的存儲空間和運算能力等,例如常見的ARM平臺,其一般的靜態存儲空間大概是16~32?MB,而CPU的主頻大概在100~500?MHz之間。這種情況下,在ARM平臺上進行本機編譯就不太可能了。這是因為一般的編譯工具鏈(compilationtoolchain)需要很大的存儲空間,并需要很強的CPU運算能力。為了解決這個問題,交叉編譯工具就應運而生了。通過交叉編譯工具,我們就可以在CPU能力很強、存儲空間足夠的主機平臺上(比如PC上)編譯出針對其他目標平臺的可執行程序,再下載到目標平臺上的特定位置上運行。
可見,以這種方式開發嵌入式系統軟件的過程需要相應的開發環境。于是就有了交叉開發環境的模式,即宿主機/目標機模式。 4.2交叉開發環境
在開發單片機系統時,需要使用一臺主機外加操作系統,如Windows2000,再裝上單片機廠商提供的開發軟件,即開發環境,在開發環境里面編譯程序,用鼠標單擊“build”快捷鍵,即生成的可執行程序配合仿真器還可以進行單步調試、觀察寄存器等。
開發工具一般是IDE(集成開發環境),它集成了編譯器(用于編譯目標CPU識別的機器代碼)、編輯器、仿真調試器等諸多工具,如果用C語言編寫程序,可能還包括相應的標準C庫。宿主機/目標機開發模式就是在一個CPU上運行一個程序,另一個CPU編譯和調試程序。和它對應的是宿主機開發模式,就是在自己的CPU上編譯和運行自己的程序,比如在PC機上用VC編譯程序直接運行。因此,宿主機/目標機開發模式并不是一個新名詞。
交叉編譯環境說明的問題和上面的一樣,只是針對編譯環境而言,這里的環境包括目標CPU的編譯器和庫文件等,至于為什么叫交叉編譯,同樣是因為運行編譯程序的CPU不是在為自己工作,而是在編譯另一個CPU的程序。這樣說來,以上例子中的編譯環境同樣屬于一個交叉編譯環境(在PC機上編譯單片機程序),只不過都被IDE集成好了。綜上所述,編譯、鏈接和調試嵌入式應用軟件的環境,它與運行嵌入式應用軟件的環境有所不同,這樣的環境稱為交叉開發環境(CrossDevelopmentEnvironment)。
需要交叉開發環境的支持是嵌入式軟件開發時的一個顯著特點。交叉開發環境模式一般如圖4-1所示。圖4-1交叉開發環境模式宿主機(Host)是一臺通用計算機(如PC機或者工作站),功能較強,各種Linux發行版本可以直接在PC機上安裝,功能十分強大。它不僅能夠支持各種處理器和外圍設備接口,而且提供了圖形化的用戶交互界面和豐富的開發環境,更重要的是Linux系統性能穩定。它為開發者提供了以下功能:
①非常穩定的多任務操作系統;
②豐富的設備驅動程序支持和網絡工具;
③強大的Shell;
④本地編譯器;
⑤編輯器;
⑥圖形化的用戶界面。 4.3交叉開發工具組成
1.交叉編譯器和交叉鏈接器
在完成嵌入式軟件的編碼之后,需要進行編譯和鏈接,以生成可執行代碼。由于開發過程大多是在使用Intel公司x86系列CPU的通用計算機上進行的,而目標環境的處理器芯片卻大多為ARM、MIPS、PowerPC、DragonBall等系列的微處理器,這就要求在建立好的交叉開發環境中進行交叉編譯和鏈接。
交叉編譯器和交叉鏈接器是能夠在宿主機上運行,并且能夠生成在目標機上直接運行的二進制代碼的編譯器和鏈接器。例如在基于ARM體系結構的交叉開發環境中,arm-linux-gcc是交叉編譯器,arm-linux-ld是交叉鏈接器。
2.交叉調試器和系統仿真器
嵌入式軟件經過編譯和鏈接后即進入調試階段,嵌入式軟件開發過程中的交叉調試與通用軟件開發過程中的調試方式有所差別。
在通用軟件開發中,調試器與被調試的程序往往運行在同一臺計算機上,調試器是一個單獨運行著的進程,它通過操作系統提供的調試接口來控制被調試的進程。
在嵌入式軟件開發中,調試時采用的是在宿主機和目標機之間進行的交叉調試,調試器仍然運行在宿主機的通用操作系統之上,但被調試的進程卻是運行在基于特定硬件平臺的嵌入式操作系統中,調試器和被調試進程通過串口或者網絡進行通信,調試器可以控制、訪問被調試進程,讀取被調試進程的當前狀態,并能夠改變被調試進程的運行狀態。
交叉調試(CrossDebug)又常常被稱為遠程調試(RemoteDebug),是一種允許調試器以某種方式控制目標機上被調試進程的運行方式,并具有查看和修改目標機上內存單元、寄存器以及被調試進程中變量值等各種調試功能的調試方式。
一般而言,遠程調試過程的結構如圖4-2所示。圖4-2遠程調試結構圖由上可知交叉調試典型特點如下:
(1)調試器和被調試進程運行在不同的機器上,調試器運行在PC或者工作站上(宿主機),而被調試的進程則運行在各種專業調試板上(目標機)。
(2)調試器通過某種通信方式與被調試進程建立聯系,如串口、并口、網絡、DBM、JTAG或者專用的通信方式。
(3)在目標機上一般會具備某種形式的調試代理,它負責與調試器共同配合完成對目標機上運行著的進程的調試。這種調試代理可能是某些支持調試功能的硬件設備(如DBI2000),也可能是某些專門的調試軟件(如gdbserver)。(4)目標機可能是某種形式的系統仿真器,通過在宿主機上運行目標機的仿真軟件,整個調試過程可以在一臺計算機上運行。此時物理上雖然只有一臺計算機,但邏輯上仍然存在著宿主機和目標機的區別。4.4宿主機與目標機之間的通信方式
4.4.1互聯通信方式
1.串口
通過串口可以作為控制臺,向目標機發送命令,顯示信息;也可以通過串口傳送文件;還可以通過串口調試內核及程序。串口的設備驅動實現也比較簡單。
2.以太網口
以太網以其高度靈活,相對簡單,易于實現的特點,成為當今最重要的一種局域網建網技術,以太網IEEE802.3通常使用專門的網絡接口卡或通過系統主電路板上的電路實現。以太網使用收發器與網絡媒體進行連接。收發器可以完成多種物理層功能,其中包括對網絡碰撞進行檢測。收發器可以作為獨立的設備通過電纜與終端站連接,也可以直接被集成到終端站的網卡當中。
以太網可采用廣播機制,所有與網絡連接的工作站都可以看到網絡上傳遞的數據。通過查看包含在幀中的目標地址,確定是否進行接收或放棄。如果證明數據確實是發給自己的,工作站將會接收數據并傳遞給高層協議進行處理。
網絡接口一般采用RJ-45標準插頭,PC機上一般都配置10M/100M以太網卡,實現局域網連接。通過以太網連接和網絡協議,可以實現快速的數據通訊和文件傳輸。另外,目標機也可以利用遠程組件來促進開發。比如內核可以通過TFTP協議下載到目標機,根文件系統(rootfs)也可以通過NFS加載來代替存儲在目標機上。利用NFS加載根文件系統實際上是一件非常好的事情。因為它避免了頻繁的復制程序修改。
3.?JTAG口
JTAG技術是一種嵌入式調試技術,它在芯片內部封裝了專門的測試電路測試接口(TAP,TestAccessPort),通過JTAG測試工具對芯片的核進行測試。它是聯合測試行動小組(JTAG,JointTestActionGroup)定義的一種國際標準測試協議,主要用于芯片內部測試及對系統進行仿真、調試。
目前大多數比較復雜的器件都支持JTAG協議,如ARM、DSP、FPGA器件等。標準的JTAG接口是4線:TMS、TCK、TDI和TDO,分別為測試模式選擇、測試時鐘、測試數據輸入和測試數據輸出。
因為JTAG接口的時鐘一般在1~16MHz之間,所以傳輸速率可以很快。但是實際的數據傳輸速度要取決于仿真器與主機端的通訊速度和傳輸軟件。4.4.2可拔插通信方式
在這種模式下,在宿主機和目標機之間沒有實際的物理連接,而是主機寫存儲設備,如軟盤、CDROM、USB盤等移動存儲介質,然后再傳給目標機,最后目標機啟動它。
在這種模式下,宿主機包括了交叉編譯環境,而目標機只包括了一個小型的啟動文件。其他的組件存儲在一個可移動的,可以被宿主機編程的,同時又可以被目標機啟動的存儲介質上。比如CompactFlashIDE設備,或者其他類型的驅動。有可能目標機不包括任何一種可永久存儲數據的設備。舉例來說,代替了固定存儲設備到目標機上,目標機只包括了一個接口,閃存芯片可以很輕易的插入和移開。這個閃存芯片同時需滿足可以很輕易的被一個宿主機上閃存燒寫器編程,并且輕易的在目標機的接口上進行一般的實驗。
這種模式在嵌入式系統開發的最初階段非常流行。當然,當最初階段結束以后,也可能發現互連模型應用更好。因此,當修改了內核或者根文件系統以后,可以避免從宿主機和目標機之間傳遞存儲設備。 4.5交叉開發環境建立
4.5.1創建交叉開發工具鏈
交叉開發工具鏈包括交叉編譯器、交叉連接器和交叉調試器,這些交叉開發工具鏈是嵌入式系統開發的必備工具,它是要安裝在宿主機(PC)上的。對于它的創建有三種途徑:第一種是下載別人已做好的工具鏈,當然這是最省事的方法;第二種是到官方網站上下載crosstool;第三種是自己一步一步制作自己的交叉開發工具鏈,這是最有趣的,也是最能體現自己能力的方式。本章所使用的交叉開發工具鏈是前面兩種,其中,第一種交叉開發工具鏈是UP-NETARM2410-S開發平臺的北京博創公司所提供的。4.5.2宿主機開發環境配置
1.宿主機安裝發行版Linux操作系統
宿主機安裝發行版Linux操作系統有以下三個方案:
(1)基于PC機Windows操作系統下的CYGWIN。
(2)在Windows下安裝虛擬機后,再在虛擬機中安裝Linux操作系統。
(3)直接安裝Linux操作系統。
安裝方案的選擇不同,主要依據PC機的系統配置,對于當前的PC機配置,建議選擇在虛擬機下安裝Linux操作系統,這樣便于系統任務的切換。對于它的安裝方法可參見本教材2.1節。如果選擇RedHat9.0,它安裝后占用空間約為2.4~5?GB之間,還要安裝ARMLinux開發軟件,對開發計算機的硬盤空間要求較大。硬件要求如下:
CPU:高于奔騰500MB,推薦高于賽揚1.7GB。
內存:大于128MB,推薦256MB。
硬盤:大于10GB,推薦高于40GB。
2.開發工具鏈的安裝
開發工具鏈的第一種來源,安裝較簡單,一般運行安裝光盤的可執行文件?./install即可,這相當于在Windows運行可執行文件setup。開發工具鏈的第二種來源,下載的工具鏈有不同的包裝格式,RPM的格式就很常用,也有把工具鏈直接壓縮成tar包的。對于RPM的格式,可以通過rpm命令把軟件包安裝到宿主機上。可是這些工具安裝到哪里去了呢?RPM包安裝的時候都會有缺省的安裝目錄,可以通過rpm命令來查詢。這個命令是RedhatLinux上的常用命令,可以參考第2章的內容。
對于tar包,可以使用tar命令解壓。問題是解壓出來的工具應該放在什么路徑下?
因為GCC編譯器的運行是依賴于其他工具和庫,通常不能把這些工具放在任意目錄下。一般通過相關的README或者說明文檔可以得到具體的安裝路徑。另外,通過gcc命令也可以得到安裝的路徑。以ARMLinux站點提供cross-3.3.2.tar.bz2包為例說明。解壓cross-3.3.2.tar.bz2后,查看GCC版本號,可以得到一些信息。
3.網絡配置
宿主機Linux環境配置,首先要確認宿主機的網絡接口驅動成功,并且配置網絡接口的IP地址。可以通過ifconfig命令查看其網絡接口,還可以通過ifconfig配置網口的IP地址。
查看本機IP地址:
#ifconfig-a
修改本機IP地址:
$ifconfigeth0
點擊開始菜單,選擇網絡,即可以通過RedhatLinux9的圖形配置界面來配置,圖4-3所示就是網絡設備配置的圖形窗口。圖4-3網絡設備配置的圖形窗口
4.串口配置
串行通信接口很適合作為控制臺,在各種操作系統上一般都有現成的控制臺程序可以使用。Windows操作系統有超級終端(Hyperterminal)工具;Linux/UNIX操作系統有minicom等工具。無論什么操作系統還是通信工具,都可以作為串口控制臺。如果在Windows平臺上運行Linux虛擬機,這個串口通信軟件可以任選一種。
超級終端(Windows開始菜單的附件中)是Windows系統的串口通訊工具,完全圖形化的界面,操作非常簡單。使用超級終端也要配置相應的連接。建立一個超級終端的連接,需要為其配置如圖4-4所示的參數。主要是串口號、通訊速率和是否流控。每建立一個配置可以保存下來。圖4-4Windows系統下的超級終端Linux系統通常使用minicom串口通訊工具。由于minicom不是圖形窗口的工具,操作起來要麻煩一些。使用minicom串口終端之前,需要先配置參數。
在Linux操作系統Xwindow界面下建立終端(在桌面上點擊右鍵選擇新建終端),在終端的命令行提示符后輸入“minicom”,就會看到minicom的啟動畫面。
minicom啟動后,先按Ctrl?+?A鍵,再按Z鍵(注意不是連續按,Ctrl?+?A松開后才按Z),進入minicom配置主界面,如圖4-5所示。圖4-5minicom配置主界面
5.?NFS服務
網絡文件系統(NetworkFileSystem,NFS)是一種允許透明文件共享的技術,這種共享出現在通過局域網(也就是LAN)連接的Unix和Linux系統之間。NFS已出現了很長時間,它在Linux和Unix世界里廣為人知而且被廣泛使用。特別地,NFS常用于在網絡上多臺機器之間共享主目錄,當用戶登錄至LAN上的一臺機器(任何一臺機器)時,這為用戶提供了一致的環境。由于NFS,掛裝遠程文件系統并將其完全集成到系統的本地文件系統成為可能。NFS的透明性和成熟使它成為在Linux下進行網絡文件共享的有用、流行的選擇。也是嵌入式系統軟件調試的一種重要、方便的方法。NFS服務的主要任務是把本地的一個目錄通過網絡輸出,其他計算機可以遠程地掛接這個目錄并且訪問這個文件。NFS服務有自己的協議和端口號,但是在文件傳輸或者其他相關信息傳遞的時候,NFS則使用遠程過程調用(RPC,RemoteProcedureCall)協議。
RPC負責管理端口號的對應與服務相關的工作。NFS本身的服務并沒有提供文件傳遞的協議,它通過RPC的功能負責。因此,還需要系統啟動portmap服務。
NFS服務的設置可以通過Linux圖形界面來操作,也可以在終端下用配置文件來操作。(1)圖形界面操作。
點擊主菜單運行系統設置,服務器設置選擇NFS服務器,點擊增加,出現如圖4-6所示界面,在目錄(Drictory)中填入需要共享的路徑,在主機(Hosts)中填入允許進行連接的主機IP地址,并選擇允許客戶對共享目錄的操作為只讀(Read-only)或讀/寫(Read/write)。圖4-6NFS服務圖形設置界面(2)配置文件操作。
NFS服務的配置文件是?/etc/exports。配置文件的語法格式如下:
共享目錄主機名稱1或IP1(參數1,參數2)主機名稱2或IP2(參數3,參數4)
“共享目錄”是主機上要向外輸出的一個目錄;
“主機名稱或者IP”則是允許按照指定權限訪問這個共享目錄的遠程主機;
“參數”則定義了各種訪問權限。
6.?DHCP服務
目標板的引導程序(Bootloader)或者內核都需要分配IP地址。這可以通過動態主機配置協議(DHCP,DynamicHostConfigurationProtocol)或者BOOTP協議實現。
BOOTP協議可以給計算機分配IP地址并且通過網絡獲取映像文件的路徑,DHCP則是向后兼容BOOTP的協議拓展。
Linux操作系統的主機一般包含dhcpd的軟件包,可以配置DHCP服務。配置服務的操作需要root用戶的權限。
首先要確認主機上已經安裝所有必需的軟件包,創建相關文件。確認?/var/lib/dhcp/dhcpd.leases已經存在。如果這個文件不存在,可以手工創建目錄和文件。網絡服務的啟動和停止也可以通過圖形化窗口來配置,在RedhatLinux9.0系統上可以點擊主菜單運行系統設置。圖4-7所示為DHCP服務配置窗口。圖4-7DHCP服務配置窗口
7.?TFTP服務
TFTP協議是簡單的文件傳輸協議,適合目標機引導程序使用。但是文件傳輸是基于UDP的,文件傳輸(特別是大文件)是不可靠的。
TFTP服務在Linux系統上有客戶端和服務器兩個軟件包。配置TFTP服務,必須先安裝好。TFTP服務也可以通過圖形化的配置窗口來啟動。當然,操作過程需要root權限。缺省的情況下,把?/tftpboot目錄作為輸出文件的根目錄。 4.6基于UP-NETARM2410-S開發平 臺交叉開發環境建立
4.6.1安裝PC機RedHatLinux虛擬機
4.6.2開發工具軟件的安裝
本節中所講的開發工具的安裝與4.5.1節中所講的創建交叉開發工具鏈的第一種方法相似,即博創公司目標機的開發工具光盤,插入CDROM,然后執行以下命令:
#cd/mnt/cdrom/2410-s06.03.03/linux-V5.1
#./install.sh
會出現如圖4-8所示的安裝界面(如果想了解在安裝過程會執行哪些內容,可用vi查看這個腳本文件install.sh)。圖4-8開發工具安裝界面4.6.3宿主機網絡配置
NFS的本質就是將宿主機和目標機組建成一個小的局域網,因此對宿主機的網絡配置包括:IP地址的設置、安全級別的設置和NFS服務的配置。
(1)?IP地址的設置。
對于IP地址設置可參看4.5.2節中的網絡配置方法,目標機的IP地址的初始設置為:15,注意對宿主機的IP設置中要把它設置成和目標機在同一個子網中。(2)安全級別的設置。
要使宿主機和目標板之間相互順利傳送文件,宿主機的安全級別應該設置成無防火墻狀態。對于REDHAT9.0,它默認的是打開了防火墻,因此對于外來的IP訪問全部拒絕,這樣其他網絡設備根本無法訪問它,即無法用NFS掛載它,許多網絡功能都將無法使用。因此網絡安裝完畢后,應立即關閉防火墻。操作如下:點擊開始菜單,選擇安全級別設置,選中無防火墻。如圖4-9所示。
(3)?NFS服務的配置。
NFS服務的配置方法可參看4.5.2節中的NFS功能的講述。在系統設置菜單中選擇服務器設置菜單,再選中服務菜單,將iptables服務的勾去掉,并確保選中nfs選項。圖4-9宿主機安全級別設置4.6.4宿主機串口配置
目標機是資源受限的系統,沒有像宿主機那樣的顯示器,如果想看程序在目標板的運行結果等,可利用串口通信將目標機的一些信息傳送到宿主機的minicom控制臺中,minicom控制臺即相當于目標機的顯示器。其宿主機的串口配置方法可參看4.5.2節中串口配置內容。
進入串口設置界面后,有幾個重要選項改為如下值:
SerialDevice:/dev/ttyS0(端口號使用串口1)
E—BPS/par/bits:/1152008N1(波特率:115200,8位數據位,無校驗,1位停止位)
F,E硬件流、軟件流都改為NO4.6.5基于UP-NETARM2410-S開發平臺交叉開發環境建立的總結
交叉開發環境的建立,就是充分利用宿主機(PC)強大的功能,建立能夠編寫、編譯、下載和調試運行在目標機(UP-NETARM2410-S)上的二進制程序,包括:RedHatLinux虛擬機的安裝、交叉開發工具鏈的制作和安裝、串口的配置、網絡的配置及JTAG口的連接等,它們各自的作用總結如下:
(1)?RedHatLinux虛擬機的安裝:利用它的強大的功能,開發一個能夠運行在目標機的Linux操作系統。
(2)交叉開發工具鏈的制作和安裝:編譯能夠運行在目標機上的二進制代碼。(3)串口的配置:相互通信,可將minicom或超級終端作為目標機顯示器。
(4)網絡的配置:宿主機和目標機之間局域網的建立,利用NFS進行文件系統的掛載,方便程序的調試。
(5)?JTAG口:可在目標機沒有任何通信之前將引導程序燒寫到目標機,在引導程序中可建立如串口等接口的初始化等。
宿主機和目標機之間的配置及通信線路如圖4-10所示。圖4-10宿主機和目標機之間的配置及通信線路圖 4.7交叉編譯和交叉調試實例
(1)建立工作目錄。
在上面的交叉開發環境建立的共享目錄(arm2410s)中建立工作目錄:
#mkdirpthread
#cdpthread
(2)編寫源代碼。
在此工作目錄下用vi編寫程序源代碼:
用vi編寫pthread.c
#vipthread.c
源代碼如下:
#include"stdio.h"
#include"math.h"(3)編寫makefile。
CC=armv4l-unknown-linux-gcc
EXEC=pthread
OBJS=pthread.o
CFLAGS+=-g-o
EXTRA_LIBS+=-lpthread
all:$(EXEC)
$(EXEC):$(OBJS)
$(CC)$(CFLAGS)$(EXTRA_LIBS)$@$(OBJS)
clean:
rm-f$(EXEC)*.elf*.gdb*.o(4)編譯應用程序。
在pthread目錄下運行make,如果進行了修改,重新編譯則運行:
#makeclean
#make
注意:編譯、修改程序不要在minicom中進行。
在宿主機上配置好主機的串口和網絡后,將串口線和網絡與主機和目標機連接之后,啟動目標機,進入系統后,進行共享文件系統的掛載。
#mount-tnfs0:/arm2410s/host
0是宿主機的IP地址,arm2410s是共享目錄(如果主機的IP地址和共享目錄設置不一樣,可根據實際情況修改)。掛接宿主機的共享目錄成功之后,在目標機上進入?/host目錄也就進入宿主機的/arm2410s目錄,再進入pthread.c程序目錄運行剛剛編譯好的pthread程序,查看運行結果。
注意:目標機掛接宿主計算機目錄只需要掛接一次便可,只要目標機沒有重啟,就可以一直保持連接。這樣可以反復修改、編譯、調試,不需要下載到目標機的過程。
(5)遠程調試。
在進行遠程調試之前,先要明白遠程調試環境的一些關鍵知識。遠程調試環境由宿主GDB和目標機調試stub共同構成,兩者通過串口或TCP連接。使用GDB標準遠程串行協議協同工作,實現對目標機上的系統內核和上層應用程序的監控和調試功能。調試stub是嵌入式系統中的一段代碼,作為宿主機GDB和目標機調試程序間的一個媒介而存在。
就目前而言,嵌入式Linux系統中主要有三種遠程調試方法,分別適用于不同場合的調試工作:
(1)?ROMMonitor調試目標機程序。
(2)?K
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江西省上饒市玉山縣2024-2025學年三下數學期末綜合測試模擬試題含解析
- 橋梁工程預埋件施工合同
- 個體工商戶合伙協議合同
- 江蘇省江都區六校2025屆初三2月網上月考(開學)數學試題含解析
- 鄭州二手房買賣合同范本
- 江蘇省射陽縣2024-2025學年初三三模考試物理試題含解析
- 股權轉讓簡易合同范本
- 四川省仁壽第一中學校北校區2024-2025學年高二下學期半期歷史試卷(含答案)
- 供貨合同預告合同
- 股權抵押借款合同樣式
- 中考數學《數與式》專題訓練(含答案)
- 新生兒呼吸窘迫綜合征的護理查房
- 《ICC概述》課件:揭秘國際刑事法院的職能與運作
- DB33T 1214-2020 建筑裝飾裝修工程施工質量驗收檢查用表標準
- 消化內科診療指南及操作規范
- 【MOOC】《醫學心理學》(北京大學)章節期末中國大學慕課答案
- 2024河北高考地理真題卷解析 課件
- 《當前國際安全形勢》課件
- 3.1 貫徹新發展理念 課件-高中政治統編版必修二經濟與社會
- 《光伏系統設計培訓》課件
- 設備的運行動態管理制度(4篇)
評論
0/150
提交評論