火龍果-嵌入式Linux系統(tǒng)開發(fā)工具_(dá)第1頁
火龍果-嵌入式Linux系統(tǒng)開發(fā)工具_(dá)第2頁
火龍果-嵌入式Linux系統(tǒng)開發(fā)工具_(dá)第3頁
火龍果-嵌入式Linux系統(tǒng)開發(fā)工具_(dá)第4頁
火龍果-嵌入式Linux系統(tǒng)開發(fā)工具_(dá)第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、嵌入式Linux系統(tǒng)開發(fā)工具課程安排nLinux常用命令nLinux上程序編寫nLinux上程序編譯nLinux上程序調(diào)試n嵌入式Linux交叉開發(fā)過程Linux常用命令u用戶切換變更用戶:su + 用戶名;不加用戶名默認(rèn)為root用戶u用戶管理添加用戶賬號(hào):useradd + 用戶名更改對(duì)于用戶的賬號(hào)密碼:passwd +用戶名更方便直接的方法是在圖形界面下維護(hù)用戶信息Linux常用命令u系統(tǒng)管理命令顯示系統(tǒng)進(jìn)程列表ps el : 顯示所有進(jìn)程及PID、時(shí)間、程序名、執(zhí)行者等信息ps aux : 除了-el內(nèi)容外,還顯示CPU、內(nèi)存占用率、進(jìn)程狀態(tài) 終止、掛起進(jìn)程kill + PID: 殺死

2、PID對(duì)應(yīng)進(jìn)程kill -9 + PID: 強(qiáng)制殺死PID對(duì)應(yīng)進(jìn)程killall + 程序名:殺死程序?qū)?yīng)的運(yùn)行進(jìn)程ctrl + c:終止當(dāng)前控制臺(tái)運(yùn)行的程序ctrl + z : 掛起當(dāng)前控制臺(tái)運(yùn)行的程序fg:繼續(xù)掛起的程序kill l:顯示系統(tǒng)信號(hào),殺死進(jìn)程依靠向進(jìn)程發(fā)送信號(hào) Linux常用命令u內(nèi)存、磁盤管理命令查看磁盤分區(qū):fdisk -l查看磁盤空間占用情況:df (默認(rèn)單位為KB)統(tǒng)計(jì)目錄或文件占用空間的大?。篸u a + 目錄或文件(默認(rèn)單位為KB)u文件系統(tǒng)掛載命令掛載文件系統(tǒng):mout + 選項(xiàng) + 類型 + 設(shè)備文件名 + 掛載點(diǎn)如:掛載U盤 mount (t vfat) /

3、dev/udisk /mnt/udisk設(shè)備文件名可以通過fdisk l 確定 卸載文件系統(tǒng):umount + 掛載點(diǎn)Linux常用命令u文件創(chuàng)建創(chuàng)建目錄:mkdir p + 目錄名創(chuàng)建文件:touch + 文件名創(chuàng)建鏈接:ln + 目標(biāo) + 鏈接名硬鏈接: ln file file.hl符號(hào)鏈接: ln s file file.sl; ln s /home/jannzeng /wkdir刪除目錄:rm fr +目錄名刪除文件:rm f +文件名移動(dòng)目錄或文件: mv + 源文件或目錄 + 目標(biāo)文件或目錄拷貝目錄或文件: cp a 源文件或目錄 + 目標(biāo)文件或目錄u文件刪除、移動(dòng)、拷貝Linu

4、x常用命令u顯示文件信息顯示文件信息顯示詳細(xì)信息:ls l +文件;不指定文件名則顯示當(dāng)前目錄下所有文件; 顯示隱藏文件信息:ls al,將隱藏文件一并顯示文件屬性顯示當(dāng)前路徑pwdLinux常用命令u修改文件屬性修改指定文件所有者:chown + 文件所有者 + 文件修改指定文件組所有者:chgrp + 文件組所有者 + 文件修改指定文件訪問權(quán)限:chmod + 權(quán)限 + 文件符號(hào)標(biāo)記權(quán)限:chmod a+w(a - w)(a = w), xnf八進(jìn)制數(shù)權(quán)限:chmod 644 xnf-R選項(xiàng)標(biāo)識(shí)遞歸設(shè)置當(dāng)前目錄及其子目錄要在Linux上執(zhí)行程序,程序文件必須帶可執(zhí)行權(quán)限將多個(gè)命令寫到一個(gè)腳

5、本文件,如run.sh為腳本文件增加可執(zhí)行權(quán)限:chmod u+x run.sh執(zhí)行腳本文件: ./run.sh,實(shí)現(xiàn)命令批處理Linux常用命令u壓縮文件對(duì)文件目錄進(jìn)行打包:tar +選項(xiàng) + 打包后文件名 + 文件目錄列表gzip格式:tar czvf jannzeng.tar.gz /home/jannzengbz2格式:tar cjvf jannzeng.tar.bz2 /home/jannzeng對(duì)文件目錄進(jìn)行解壓:tar + 選項(xiàng) + 打包文件 gzip格式:tar xzvf jannzeng.tar.gzbz2格式:tar xjvf jannzeng.tar.bz2解壓到指定目錄

6、:tar xzvf jannzeng.tar.gz C / Linux常用命令u查找文件在指定文件中搜索特定內(nèi)容:grep + 格式內(nèi)容 + 文件及路徑搜索etc目錄及子目錄下帶jannzeng的文件:grep “jannzeng” /etc -r支持正則表達(dá)式: grep jann* /etc -r應(yīng)用于管道:ps aux | grep smbd; ls l grep a在指定目錄中搜索文件:find + 路徑 + -name + 格式文件名在當(dāng)前目錄及子目錄下查找bak結(jié)尾的文件:find ./ -name *.bakLinux常用命令u顯示文件內(nèi)容連接并顯示指定一個(gè)或多個(gè)文件:cat +

7、 選項(xiàng) + 文件列表查看配置文件內(nèi)容: cat /etc/profile;cat n /etc/profile; cat b /etc/profile合并文件:cat hello1.txt hello2.txt hello3.txt附加文件:cat hello1.txt hello2.txt顯示一屏文本:more + 文件從頭開始顯示一屏:more /etc/profile;moremore顯示暫停下來后,可以在末行輸入交互命令:回車,顯示下一行空格/Ctrl+f,向下滾一屏Ctrl+b,回顯上一屏q,退出moreLinux常用命令u顯示文件比more更好用的less,支持隨意瀏覽文件回車,向

8、下移動(dòng)一行y,向上移動(dòng)一行空格,向下滾一屏b,向上滾一屏/pattern,按pattern格式搜索;n,匹配下一個(gè);N,匹配上一個(gè)顯示文件最前行:head /etc/profle顯示文件最末行:tail /etc/profileLinux常用命令u比較文件比較兩個(gè)不同的文件或不同目錄下的兩個(gè)同名文件比較兩個(gè)文件:diff ruNa hello1.c hello2.c比較兩個(gè)文件,生成補(bǔ)丁文件: diff ruNa hello1.c hello2.c hello1.patch把生成的補(bǔ)丁文件應(yīng)由在現(xiàn)有的代碼上將hello2.c的改變合并到hell1.c:patch hello1.c hello1

9、.patch cd /home/jannzeng; pach p2 hello1.c 剪切n行,n不給則剪切當(dāng)前行(n)yy - 拷貝n行,n不給則拷貝當(dāng)前行p - 粘貼u - 撤銷當(dāng)前操作,退回到上一次輸入狀態(tài)/+字符串+回車 - 查找指定字符串gg=G -對(duì)文件排版插入模式下ctrl+n - 自動(dòng)補(bǔ)全Linux上程序編寫uVi/Vim編輯命令末行模式下w+回車 - 保存當(dāng)前輸入; wq+回車-保存并退出; q!+回車 - 不保存退出行號(hào)+回車 - 定位到指定行%s/被替換字符串/替換字符串/g+回車 -執(zhí)行全局替換e+文件路徑名 -打開指定文件sp - 拆分窗ctrl+w-切換窗口Linu

10、x上程序編寫uVi/Vim配置支持自主配置,支持插件全局配置文件/etc/.vimrc根用戶配置文件/root/.vimrc; 插件目錄/root/.vim課程安排nLinux常用命令nLinux上編寫C程序nLinux上程序編譯nLinux上程序調(diào)試n嵌入式Linux交叉開發(fā)過程Linux上程序編譯uGcc簡介GNU CC(簡稱為gcc)是GNU項(xiàng)目中符合ANSI C標(biāo)準(zhǔn)的編譯系統(tǒng),能夠編譯用C、C+和Object C等語言編寫的程序gcc功能強(qiáng)大,而且可以編譯如C、C+、Object C、Java、Fortran、Pascal、Modula-3和Ada等多種語言。gcc又是一個(gè)交叉平臺(tái)編譯

11、器,它能夠在當(dāng)前CPU平臺(tái)上為多種不同體系結(jié)構(gòu)的硬件平臺(tái)開發(fā)軟件,因此尤其適合在嵌入式領(lǐng)域的開發(fā)編譯Linux上程序編譯uGcc編譯過程Linux上程序編譯uGcc支持的文件慣用后續(xù)名Linux上程序編譯u預(yù)處理階段在該階段,對(duì)包含的頭文件(#include)和宏定義(#define、#ifdef等)進(jìn)行處理 。使用gcc的選項(xiàng)“-E” 讓gcc在預(yù)處理結(jié)束后停止編譯過程:gcc E hello.c o hello.iu編譯階段gcc首先要檢查代碼的規(guī)范性、是否有語法錯(cuò)誤等,以確定代碼的實(shí)際要做的工作在檢查無誤后,gcc把代碼翻譯成匯編語言使用“-S”選項(xiàng)來進(jìn)行查看,該選項(xiàng)只進(jìn)行編譯而不進(jìn)行匯

12、編,生成匯編代碼: gcc S hello.i o hello.sLinux上程序編譯u匯編階段把編譯生成的“.s”文件(匯編碼)轉(zhuǎn)換成目標(biāo)文件(機(jī)器碼)使用gcc的選項(xiàng)“-c” 只匯編,不鏈接:gcc c hello.s o hello.ou鏈接階段這里涉及到一個(gè)重要概念:庫函數(shù)例如“printf”函數(shù):在預(yù)處理中包含進(jìn)”stdio.h”中只有函數(shù)聲明,沒有定義函數(shù)實(shí)現(xiàn)系統(tǒng)把這些函數(shù)的實(shí)現(xiàn)都放到名為libc.so.6的庫文件中去Gcc會(huì)到系統(tǒng)默認(rèn)的庫搜索路徑”/usr/lib”下查找,鏈接到libc.so.6函數(shù)庫,從而調(diào)用”printf”函數(shù)庫有靜態(tài)庫(“*.a”)和動(dòng)態(tài)庫(“*.so”)

13、,默認(rèn)使用動(dòng)態(tài)庫鏈接動(dòng)態(tài)庫:gcc hello.o o hello鏈接靜態(tài)庫: gcc static hello.o o helloLinux上程序編譯uGcc常用選項(xiàng)Linux上程序編譯uGcc告警選項(xiàng)Linux上程序編譯uGcc優(yōu)化選項(xiàng)gcc可以對(duì)代碼進(jìn)行優(yōu)化,它通過編譯選項(xiàng)“-On”來控制優(yōu)化代碼的生成,其中n是一個(gè)代表優(yōu)化級(jí)別的整數(shù)不同的優(yōu)化級(jí)別對(duì)應(yīng)不同的優(yōu)化處理工作“-O”主要進(jìn)行線程跳轉(zhuǎn)(Thread Jump)和延遲退棧(Deferred Stack Pops)兩種優(yōu)化“-O2”除了完成所有“-O1”級(jí)別的優(yōu)化之外,同時(shí)還要進(jìn)行一些額外的調(diào)整工作,如處理器指令調(diào)度等“-O3”則還

14、包括循環(huán)展開和其他一些與處理器特性相關(guān)的優(yōu)化工作使用原則:調(diào)試時(shí)不使用任何優(yōu)化選項(xiàng),最終發(fā)行的時(shí)候才考慮對(duì)其優(yōu)化Linux上程序編譯uGcc庫選項(xiàng)用于對(duì)靜態(tài)庫、動(dòng)態(tài)庫的打包與鏈接Linux上程序編譯uGcc宏選項(xiàng)-Dmacro用于編譯階段定義宏,將在C語言學(xué)習(xí)中展開使用uGcc調(diào)試選項(xiàng)-g:用于在可執(zhí)行文件包含調(diào)試信息用于進(jìn)行g(shù)db調(diào)試gcc -Wall -g -I./inc main.c src/add.c -o main課程安排nLinux常用命令nLinux上編寫C程序nLinux上程序編譯nLinux上程序調(diào)試n嵌入式Linux交叉開發(fā)過程Linux上程序調(diào)試uGdb簡介gdb調(diào)試器是

15、一款GNU開發(fā)組織并發(fā)布的UNIX/Linux下的程序調(diào)試工具它沒有圖形化的友好界面,但是它強(qiáng)大的功能也足以與微軟的VC工具等媲美Linux上程序調(diào)試uGdb幫助gdb的命令很多,gdb把之分成許多個(gè)種類 ,help命令列出gdb的命令種類如果要看種類中的命令,可以使用help 命令也可以直接help 來查看命令的幫助。在gdb下,可以敲擊兩次TAB鍵來補(bǔ)齊命令的全稱,如果有重復(fù)的,gdb會(huì)全部出來。 (gdb) helpList of classes of commands:aliases - Aliases of other commandsbreakpoints - Making pro

16、gram stop at certain pointsdata - Examining datafiles - Specifying and examining filesinternals - Maintenance commandsType help followed by a class name for a list of commands in that class.Type help followed by command name for full documentation.Command name abbreviations are allowed if unambiguou

17、s.(gdb) help callCall a function in the program.The argument is the function name and arguments, in the notation of thecurrent working language. The result is printed and saved in the valuehistory, if it is not void.Linux上程序調(diào)試uGdb使用過程編譯帶調(diào)試信息的可執(zhí)行文件啟動(dòng)gdb進(jìn)行調(diào)試$ gcc -g test.c -o test$ gdb testGNU gdb Red

18、 Hat Linux (-1.21rh)Copyright 2004 Free Software Foundation, Inc.GDB is free software, covered by the GNU General Public License, and you arewelcome to change it and/or distribute copies of it under certain conditions.Type show copying to see the conditions.There is absolutely no warranty for

19、 GDB. Type show warranty for details.This GDB was configured as i386-redhat-linux-gnu.Using host libthread_db library /lib/libthread_db.so.1.(gdb)Linux上程序調(diào)試uGdb使用過程查看源代碼:l(list)(gdb) l1 #include 2 int sum(int m);3 int main()4 5 int i,n = 0;6 sum(50);7 for(i = 1; i = 50; i+)8 9 n += i;10 (gdb) l11 pr

20、intf(The sum of 150 is %d n, n );12 13 14 int sum(int m)15 16 int i, n = 0;17 for(i = 1; i = m; i+)18 19n += i;20 21 printf(The sum of 1m is = %dn, n);20 Linux上程序調(diào)試uGdb使用過程設(shè)置斷點(diǎn):b(breakpoints)查看斷點(diǎn)情況:info b(gdb) b 6Breakpoint 1 at 0 x804846d: file test.c, line 6. (gdb) info bNum Type Disp Enb Address

21、What1 breakpoint keep y 0 x0804846d in main at test.c:6Linux上程序調(diào)試uGdb使用過程運(yùn)行程序: r(run)監(jiān)視調(diào)用堆棧情況:bt(backtrace)(gdb) rStarting program: /root/workplace/gdb/testReading symbols from shared object read from target memory.done.Loaded system supplied DSO at 0 x5fb000Breakpoint 1, main () at test.c:66 sum(50

22、);(gdb) b 19(gdb) cBreakpoin 2, sum(m=50) at test.c:1919printf(“The sum of 1-m is %dn”, n);(gdb) bt#0sum(m=50) at test.c:19#10 x080483e8 in main() at test.c:6Linux上程序調(diào)試uGdb使用過程查看變量: p(printf)單步運(yùn)行: n(next)/s(step)(gdb) p n$1 = 0(gdb) p i$2 = 134518440(gdb) nThe sum of 1-m is 12757 for (i = 1; i = 50;

23、 i+) (gdb) ssum (m=50) at test.c:1616 int i, n = 0;恢復(fù)程序運(yùn)行: c(continue)(gdb) cContinuing.The sum of 1-50 is :1275Program exited with code 031. Linux上程序調(diào)試uGdb工作環(huán)境相關(guān)命令Linux上程序調(diào)試uGdb設(shè)置斷點(diǎn)與恢復(fù)命令Linux上程序調(diào)試uGdb查看源代碼相關(guān)命令Linux上程序調(diào)試uGdb查看運(yùn)行數(shù)據(jù)相關(guān)命令Linux上程序調(diào)試u使用Gdb注意事項(xiàng)在gcc編譯選項(xiàng)中一定要加入”-g”只有在代碼處于“運(yùn)行”或“暫?!睜顟B(tài)時(shí)菜能查看變量值設(shè)置

24、斷點(diǎn)后程序在指定行之前停止:斷點(diǎn)行并未執(zhí)行課程安排nLinux常用命令nLinux上編寫C程序nLinux上程序編譯nLinux上程序調(diào)試n嵌入式Linux交叉開發(fā)過程嵌入式Linux交叉開發(fā)u交叉開發(fā)概念嵌入式軟件所運(yùn)行的環(huán)境通常是配置比較低的智能設(shè)備如:只有較低的CPU主頻,非常小的內(nèi)存,沒有硬盤象傳統(tǒng)桌面軟件開發(fā)那樣,直接在嵌入式設(shè)備上編輯,編譯和調(diào)通常不可行幾乎所有的嵌入式開發(fā)領(lǐng)域都采用交叉開發(fā)(Cross-Developer)的方法:整個(gè)流程是在兩個(gè)不同設(shè)備交互進(jìn)行用配置較高的桌面機(jī)來編輯和編譯程序在最終的嵌入式設(shè)備上運(yùn)行程序嵌入式Linux交叉開發(fā)u交叉開發(fā)環(huán)境在一個(gè)完整嵌入式開發(fā)

25、環(huán)境里,用于編輯和編譯的PC機(jī)稱為host,嵌入式設(shè)備稱為targethost和target通過一些物理連線相連:串口、網(wǎng)口、并口host和target的CPU架構(gòu)通常不一致:host為intel的,target為arm、m68k等在嵌入式Linux開發(fā)環(huán)境里,host和target都運(yùn)行于Linux操作系統(tǒng),如教學(xué)用的Arm-Linux嵌入式開發(fā)環(huán)境:基于intel架構(gòu)CPU,運(yùn)行于桌面版(RHEL5)Linux系統(tǒng)的PC機(jī)作為host基于arm架構(gòu)CPU,運(yùn)行于嵌入式版Linux系統(tǒng)的開發(fā)板作為target兩者通過網(wǎng)口和串口交互嵌入式Linux交叉開發(fā)u交叉開發(fā)環(huán)境Target:Arm-L

26、inux網(wǎng)線網(wǎng)線HOST:Intel-RHEL5串口線串口線主機(jī)(host)編譯好的軟件要“嵌入”到目標(biāo)(target)機(jī)運(yùn)行,需要滿足以下2個(gè)要求host(intel體系架構(gòu))上能編譯出target架構(gòu)(arm架構(gòu))的軟件軟件能從host“嵌入”到target運(yùn)行嵌入式Linux交叉開發(fā)u配置物理連接通過串口連接host和target用串口線將PC機(jī)和開發(fā)板連通配置putty串口,通過putty串口登錄到開發(fā)板修改開發(fā)板IP配置文件,使得本地連接和開發(fā)板e(cuò)th0在同一網(wǎng)段:如都在192.168.1.*通過網(wǎng)口連接host和target用網(wǎng)線將PC機(jī)和開發(fā)板連通使用控制臺(tái)ping開發(fā)板IP,

27、確認(rèn)與開發(fā)板網(wǎng)絡(luò)聯(lián)通:ping 54使用putty驗(yàn)證可以通過telnet登錄開發(fā)板嵌入式Linux交叉開發(fā)u交叉工具鏈交叉工具鏈的本質(zhì)交叉工具鏈用于在host上將源代碼編譯成滿足target體系架構(gòu)的軟件交叉工具鏈本身屬于運(yùn)行在host上的工具軟件集交叉工具鏈?zhǔn)莌ost架構(gòu)的軟件,卻能編譯出target架構(gòu)的軟件arm-linux交叉工具鏈運(yùn)行在intel架構(gòu)的linux軟件集能編譯出arm架構(gòu)的linux軟件完整的arm-linux工具鏈,跟X86 Linux對(duì)應(yīng),包含arm-linux-gcc、arm-linux-ar、arm-linux-strip等arm-lin

28、ux交叉工具鏈本身也是通過開源代編譯構(gòu)建的嵌入式Linux交叉開發(fā)u安裝交叉工具鏈將工具鏈軟件包解壓到根目錄如:tar xvzf arm-linux-gcc-*.*.*.tgz -C / (注:*表示版本號(hào))成功后工具軟件集安裝在/usr/local/arm/*.*.*目錄下將工具鏈所在路徑加入環(huán)境變量PATH直接設(shè)在/etc/profile文件使所有用戶都生效:在export PATH之上添加行pathmuge /usr/local/arm/*.*.*/binsource /etc/profile使得新PATH生效which arm-linux-gcc驗(yàn)證是否成功安裝嵌入式Linux交叉開發(fā)

29、u交叉開發(fā)實(shí)例host上用vim編寫源代碼#include int main (void)printf(“Embedded cross-development!n”);return 0;host上編譯運(yùn)行驗(yàn)證無誤gcc main.c o mainfile main: main為intel架構(gòu)的./main嵌入式Linux交叉開發(fā)u交叉開發(fā)實(shí)例host上交叉編譯arm-linux-gcc main.c o mainfile main: 驗(yàn)證是arm架構(gòu)的將軟件“嵌入”到目標(biāo)機(jī)基于Linux文件系統(tǒng)的“嵌入”直接通過文件拷貝實(shí)現(xiàn):兩種方式通過U盤拷貝通過NFS網(wǎng)絡(luò)共享拷貝通過U盤拷貝在PC機(jī)上將m

30、ain拷貝到U盤將U盤插入開發(fā)板,查看開發(fā)板分區(qū):cat /proc/partitions通過分區(qū)信息確定U盤設(shè)備文件:例如SCSI盤一般為sda1掛載U盤: mount /dev/sda1 /mnt/udsik,則從/mnt/udsik可以訪問所有U盤文件將main從U盤拷貝到開發(fā)板: cp /mnt/udsik/main /soft嵌入式Linux交叉開發(fā)u交叉開發(fā)實(shí)例通過nfs網(wǎng)絡(luò)共享拷貝確認(rèn)在RHEL5上能ping通開發(fā)板: ping 54在RHEL5上設(shè)置NFS共享,并啟動(dòng)NFS共享服務(wù)在開發(fā)板上掛載NFS共享文件夾: mout t nfs o nolock,rw 192.168.12:/home/jannzeng /mnt/nfs則從開發(fā)板/mnt/nfs可以訪問RHEL5的/home/jannzeng上所有文件將main從RHEL5拷貝到開發(fā)板在開發(fā)板上運(yùn)行程序./main嵌入式Linux交叉開發(fā)u功能分布NFS Client/MountTarget:Arm-Linux網(wǎng)線網(wǎng)線HOST:IntelRHEL5NFS Serverarm-linux-gcc串口線串口線配置IP可執(zhí)行程序可執(zhí)行程序源程序源程序嵌入式Linux交叉開發(fā)u遠(yuǎn)程調(diào)試概念GDB調(diào)試需要在運(yùn)行環(huán)境(ta

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論