開發(fā)板stm32入門iar ewarm快速_第1頁
開發(fā)板stm32入門iar ewarm快速_第2頁
開發(fā)板stm32入門iar ewarm快速_第3頁
開發(fā)板stm32入門iar ewarm快速_第4頁
開發(fā)板stm32入門iar ewarm快速_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、2006年2月IAR EWARM 快速入門(V1.0): 傳真:市新模范馬路17號02幢二層(210003)0目錄1前 言第一章EWARM 集成開發(fā)環(huán)境及配套仿真器2第二章在 EWARM 中生成一個新項(xiàng)目10編譯和連接應(yīng)用程序14第三章用 C-SPY 調(diào)試應(yīng)用程序20第四章EWARM Flash Loader 開發(fā)指南28第五章: 傳真:市新模范馬路17號02幢二層(210003)0編者序IAR Embedded Workbench for ARM 是 IAR Systems 公司為ARM 微處理器開發(fā)的一個集成開發(fā)環(huán)境(下面簡稱 IAR EWARM)。比較其他的 ARM 開發(fā)環(huán)境,IAR E

2、WARM 具有入門容易、使用方便和代碼緊湊等特點(diǎn)。故在這里介紹給打算學(xué)習(xí)使用或正在使用 ARM的朋友們共同探討。IAR Systems 公司目前推出的版本是 IAR Embedded Workbench for ARM ver4.31,并提供一個32k 代碼限制、但時間限制長達(dá) 25 或的朋友可以到 IAR 公司的年的免費(fèi)評估版。有的 (本地)去尋找和。IAR EWARM 中包含一個全內(nèi)核、外部設(shè)備甚至中斷的的模擬程序(simulator)。用戶不需要任何硬件支持就可以模擬各種 ARM運(yùn)行環(huán)境。從中可以了解和評估 IAR EWARM 的功能和使用方法。安裝目錄 C:Program filesI

3、AR SystemEmbedded編譯整理的這本快速用戶指南采用評估版workbench 4.0ARMtutor 下的為例,一步一步介紹 IAR EWARM 的使用方法。該采用了兩個C語言程序,tutor.c 和 utilities.c。它們不和任何特定的硬件關(guān)聯(lián),所以介紹中的全部操作都是用模擬程序完成的。在以后的章節(jié)里,具體介紹 EWARM及配套硬件工具、如何使用 EWARM 集成開發(fā)環(huán)境以及在 EWARM 下燒寫 Flash 的方法。IAR如果用戶希望在真實(shí)的目標(biāo)板上進(jìn)行代碼運(yùn)行和調(diào)試,請到JTAG 仿真器 J-Link。各直銷點(diǎn)的真2006 年于附:EWARM 的學(xué)習(xí)步驟: 傳真:市新模

4、范馬路17號02幢二層(210003)1安裝 EWARM 32K 學(xué)習(xí)版; 進(jìn)入 - Online Demos,F(xiàn)lash 格式的使用動畫演示; 以本入門手冊結(jié)合使用的動畫演示,進(jìn)行使用的入門學(xué)習(xí); 在安裝目錄.armsrcexles 下,尋找感的例程學(xué)習(xí); 可選項(xiàng) 1:J-Link 仿真器和開發(fā)板,實(shí)現(xiàn)在硬件上的代碼運(yùn)行和調(diào)試; 可選項(xiàng) 2:由北航的IAR EWARM系統(tǒng)編程與實(shí)踐一書,深入學(xué)習(xí); 學(xué)習(xí)“可選項(xiàng) 1 或 2”的隨附光盤中Converting ADS Projects to EWARM Projects白皮書,實(shí)踐如何移植一個 ADS 工程到 EWARM 格式的工程。第一章 E

5、WARM 集成開發(fā)環(huán)境及配套仿真器IAR Embedded Workbench for ARM ver4.31 是一個針對 ARM 處理器的集成開發(fā)環(huán)境,包含項(xiàng)目管理器、編輯器、編譯連接工具和支持 RTOS 的調(diào)試工具,在該環(huán)境下可以使用C/C+和匯編語言方便地開發(fā)應(yīng)用程序。IAR EWARM 的主要模塊如下:項(xiàng)目管理器功能強(qiáng)大的編輯器高度優(yōu)化的 IAR ARM C/C+ Compiler IAR ARM Assembler1 個通用的 IAR XLINK LinkerIAR XAR 和 XLIB 建庫程序和 IAR DLIB C/C+運(yùn)行庫 IAR C-SPY 調(diào)試器(先進(jìn)的高級語言調(diào)試器)

6、命令行實(shí)用程序以下介紹一下 EWARM 4.31 版本及其相關(guān)配套硬件的一些特點(diǎn):1 IAR EWAM的特點(diǎn) EWARM 4.31 版基本特點(diǎn)完善的 ARM 內(nèi)核支持-支持到 ARM11 內(nèi)核(ARM1136J,ARM1136J-S,ARM1136JF,ARM1136JF-S)- 早已支持的其他 ARM 內(nèi)核ARM7(ARM7TDMI,ARM7TDMI-S,ARM720T) ARM9(ARM9TDMI,ARM920T,ARM922T,ARM940T,ARM9E,ARM9E-S,ARM926EJ-S,ARM946E-S,ARM966E-S,ARM968E-S) ARM10(ARM10E,ARM1

7、020E,ARM1022E,ARM1026EJ-S)XScale(XScale,XScale-IR7)更加客戶化地提供級的支持-完備的各廠商 ARM 處理器的 C/C+和匯編語言外設(shè)寄存器定義文件支持的廠商有og Devi、ARM、Atmel、Cirrus Logic、Freescaleel、NetSilicon、OKI、Philips、Samsung、Sharp、ST 和 TI-支持og Devi、Atmel、Freescale、OKI、Philips、ST 和TI 等廠商的 ARM 處理器的Flash Loader 程序集成了 200 余個代碼例程,對應(yīng)于各種不同的-,位于.armsrce

8、xles 目錄下進(jìn)一步改進(jìn)了編譯器速度優(yōu)化,重寫了的浮點(diǎn)運(yùn)算庫: 傳真:市新模范馬路17號02幢二層(210003)2對操作系統(tǒng)的支持-新增支持 OSEK 類操作系統(tǒng)的 OSEK Run-Timeerface (ORTI)新增支持 OSE Epsilon RTOS 的 Kernel Awareness 調(diào)試新增支持 em、SMX、NORTi 等的支持調(diào)試器的增強(qiáng)功能-對堆棧運(yùn)行的監(jiān)測功能配合 IAR J-Link 仿真器的新增功能J-Link TCP/IP 服務(wù)器調(diào)試器和 IAR J-Link 仿真器協(xié)同配合,實(shí)現(xiàn)對 ARM 處理器的多核調(diào)試對 IAR J-Trace 仿真器提供全面的支持在

9、C-SPY 模擬器中可執(zhí)行 Trace 的模擬-上多顆 Flash 的 Flash Loader 程序,以及通用的 Flash Loader 開發(fā)指南支持同一EWARM在級支持方面的特色完備的各廠商 ARM 處理器的 C/C+和匯編語言外設(shè)寄存器定義文件大量適合于代碼的編程語言擴(kuò)展特性,包括器關(guān)鍵字,本征函數(shù),中斷函數(shù),器I/O 等針對評估板的例程,包含 IAR、og Devi、Aiji System、ARM、Atmel、Cirrus Logic、Freescale、Keil、OKI、Olimex、Pasat、Philips、Phytec、ST 和 TI 等廠家的開發(fā)板支持 ARM 或 Thu

10、mb 模式下大至 4G 字節(jié)的應(yīng)用程序每個函數(shù)都能選擇在 ARM 或 Thumb 模式下編譯可生成 VFP 向量浮點(diǎn)協(xié)處理器代碼支持og Devi、Atmel、Freescale、OKI、Philips、ST 和 TI 等廠商的 ARM 處理器的Flash Loader 程序支持 ARM Angel Debug monitorEWARM 編譯器的特色先進(jìn)的通用編譯器優(yōu)化和針對特定處理器的速度優(yōu)化及器優(yōu)化功能輕量運(yùn)行庫,用戶可以根據(jù)需要自行配置,提供全部源代碼靈活的器控制,允許詳細(xì)地為代碼和數(shù)據(jù)分配地址去除不需要的函數(shù)和變量C/C+變量和函數(shù)連接時全局類型檢查可選的校驗(yàn)和生成功能,用于運(yùn)行時映象

11、校驗(yàn)自動將代碼和數(shù)據(jù)放置到非連續(xù)的強(qiáng)大的可重定位宏匯編器,支持豐富器區(qū)域令集和操作符: 傳真:市新模范馬路17號02幢二層(210003)3EWARM 調(diào)試器的特色完全集成的源代碼和反匯編程序調(diào)試器非常細(xì)化的執(zhí)行控制(函數(shù)調(diào)用級步進(jìn))復(fù)雜的代碼和數(shù)據(jù)斷點(diǎn)豐富的數(shù)據(jù)監(jiān)視功能Locals,Watch,Auto,Live Watch 和 Quick Watch 等變量查看窗口寄存器和器查看窗口支持 STL 容器C/C+調(diào)用棧窗口,同時還可以顯示將要進(jìn)入的函數(shù)雙擊調(diào)用鏈上的任何函數(shù)將更新編輯器、局部變量、寄存器、變量查看和反匯編窗口,以顯示在該函數(shù)調(diào)用時的狀態(tài)功能,可以檢查執(zhí)行的歷史。在窗口中移動時將

12、更新編輯器和反匯編窗口以顯示合適的位置控制臺 I/O 仿真中斷和 I/O 模擬仿真類似 C 語言的宏系統(tǒng),可擴(kuò)充調(diào)試器的功能由主機(jī)執(zhí)行的應(yīng)用程序系統(tǒng)調(diào)用仿真代碼覆蓋率和執(zhí)行時間分析工具通用的 Flash Loader 程序及開發(fā)指南同時支持多顆 Flash 的 Flash Loader 程序支持 OSEK Run-Time提供為調(diào)試器擴(kuò)充第erface (ORTI)功能的開發(fā)包,如 RTOS 調(diào)試擴(kuò)充和仿真器驅(qū)動擴(kuò)充命令行調(diào)試工具IAR C-SPY 支持的調(diào)試方法IAR J-Link JTAG 接口(支持所有 ARM7 和 ARM9 核,通過 USB 或 TCP/IP 連接)IAR J-Tra

13、ce JTAG 接口(支持所有 ARM7 和 ARM9 核,通過 USB 或 TCP/IP 連接)RDI 接口類的第仿真器(Abatron BDI1000 & BDI2000,Majic, Ashling Opella,AijiOpenICE, Signum JTAGjet, ARM Multi-ICE 等)Macraigor Wiggler, Raven, mpDemon 和 USBdemon 等調(diào)試接口Jeeni 仿真器支持IAR 的 ROM-MonitorARM 公司的 Angel ROM-Monitor(用于 Atmel 和 Cirrus Logic 的評估板)IAR 對實(shí)時操作系統(tǒng)的

14、 Kernel Awareness 調(diào)試支持: 傳真:市新模范馬路17號02幢二層(210003)4每種 RTOS 插件都會在 C-SPY 中安裝一批新的窗口,其中最重要的是任務(wù)或線程列表窗口,在此窗口中可以在指定的任務(wù)上設(shè)置斷點(diǎn)和執(zhí)行程序。其它不同的監(jiān)測窗口可以顯示 RTOS構(gòu)的內(nèi)容,例如定時器、隊(duì)列、信號量、資源和郵箱等。數(shù)據(jù)結(jié)EWARM 圖形化的集成開發(fā)環(huán)境的界面特色分層次的工程組織同一工作空間中允許存放多個工程可??康拇翱诤投嘁晥D源代碼瀏覽創(chuàng)建和庫的工具可以和源代碼控制系統(tǒng)相集成文本編輯器-支持多字節(jié)字符(漢字)上下文相關(guān)的幫助系統(tǒng)根據(jù)句法的 undo/redo 搜尋、替換和增量搜尋

15、Go to書簽:查閱前一個/下一個錯誤: 傳真:市新模范馬路17號02幢二層(210003)5操作系統(tǒng)IAR EWARM內(nèi)置的插件由第RTOS 廠商提供的插件CMA-RXXCMX-Tiny+XuC/OS-IIXThreadXXRTXC QuadrosXFuRTOSXOSEK(ORTI)XENEA OSE EpsilonXMiSPO NORTiXMicro Digital SMXXSegger emX-自動括號配對智能縮排類似網(wǎng)頁瀏覽器的前向/后向源碼查閱代碼斷點(diǎn)的設(shè)置/清除/使能/命令行編譯連接工具EWARM 的編程語言和標(biāo)準(zhǔn)遵循 ISO/ANSI C94(帶有一些從 C99 標(biāo)準(zhǔn)中挑選的特性

16、)標(biāo)準(zhǔn)的 C 編程語言C+擴(kuò)展,支持模板、多重繼承和虛擬繼承、名字空間以及其它不增加執(zhí)行時間或器開銷的 C+特性。完整的 IEEE-754 浮點(diǎn)運(yùn)算規(guī)則MISRA C 檢查器C+庫還包含字符串、流等特性,以及標(biāo)準(zhǔn)模板庫(STL)支持大量工業(yè)標(biāo)準(zhǔn)的調(diào)試和映象文件格式(如 ELF/DWARF),與大多數(shù)常見的調(diào)試器和仿真器兼容用戶幫助完備的例程和工程模板。上下文相關(guān)的聯(lián)機(jī)幫助系統(tǒng),帶有庫函數(shù)查閱功能印刷好的用戶指南,帶有詳細(xì)的 step-by-step友好、詳盡和精確的錯誤信息和警告信息2IAR J-Link 仿真器簡介IAR J-Link 是 IAR 為支持仿真 ARM 內(nèi)核推出的 JTAG 方

17、式仿真器。配合 IAR EWARM 集成開發(fā)環(huán)境支持所有 ARM7/ARM9 內(nèi)核的仿真,無需安裝任何驅(qū)動程序與 EWARM 集成開發(fā)環(huán)境無縫連接,操作方便、連接方便、簡單易學(xué)是學(xué)習(xí)開發(fā) ARM 最好最實(shí)用的開發(fā)工具。同時,最近的有關(guān)測試顯示,J-Link 目前是同類產(chǎn)品中調(diào)試速度最快的 J-Tag 仿真器: J-Link ARM 主要特點(diǎn)IAR EWARM 集成開發(fā)環(huán)境無縫連接的 JTAG 仿真器支持所有 ARM7/ARM9 內(nèi)核的,包括 Thumb 模式: 傳真:市新模范馬路17號02幢二層(210003)6公司產(chǎn)品通訊接口支持內(nèi)核速度對開發(fā)板供電功能備注MacraigorWigglerL

18、PTARM7/916 KB/秒無即并口仿真頭KeilU-LinkUSBARM728 KB/秒無IARJ-LinkUSB 2.0ARM7/9600 KB/秒有速度高達(dá) 600 kB/s最高 JTAG 速度 12 MHz目標(biāo)板電壓范圍 1.2V 3.3V自動速度識別功能監(jiān)測所有 JTAG 信號和目標(biāo)板電壓完全即插即用使用 USB 電源帶 USB 連接線和 20 芯扁平電纜支持多 JTAG 器件串行連接標(biāo)準(zhǔn) 20 芯 JTAG 仿真插頭 選配 14 芯 JTAG 仿真插頭 選配用于 5V 目標(biāo)板的適配器帶 J-Link TCP/IP server,允許通過TCP/ IP 網(wǎng)絡(luò)使用 J-LinkIAR

19、 J-Link 的物理連接J-LINK 一端通過 USB 口與 PC 連接,另一端通過標(biāo)準(zhǔn) 20 芯 JTAG 插頭與目標(biāo)板連接。建議首先連接 J-LINK 到 PC,再連接 J-LINK 到目標(biāo)系統(tǒng),最后給目標(biāo)系統(tǒng)供電(如果目標(biāo)系統(tǒng)為獨(dú)立供電、而非由 J-TAG 口供電的情況)。IAR J-Link 主要技術(shù)指標(biāo)目標(biāo)板5V電源適配器選件當(dāng)目標(biāo)系統(tǒng)為 5V 電源系統(tǒng)時,必須使用 J-LINK 提供的 5V 電源適配器選件。對于 1.2V3.3V 電源系統(tǒng),可以直接使用 J-Link。使用時將適配器的 20 芯 IDC 插頭插進(jìn) J-Link 的 20 芯插座,再將連接目標(biāo)的 20 芯扁平電纜插

20、進(jìn)適配器的插座。5V 適配器選件由目標(biāo)供電(3.3V 5V),電流20mA,有一個 LED 指示電源狀態(tài)。: 傳真:市新模范馬路17號02幢二層(210003)7功耗吸取 USB 供電電力 50 mA通訊方式USB 2.0 全速目標(biāo)板接口20 芯 JTAG 口(14 芯 JTAG 口選件)J-Link 和 ARM 間串行傳輸速率最高 12 MHz支持目標(biāo)電壓1.2 3.3 V (5V 適配頭選件)工作溫度+5 C - +60 C溫度-20 C - +65 C相對濕度(無冷凝水) Debugger - J-Link 設(shè)置頁面中。固定 JTAG 速度目標(biāo)被鎖定在固定時鐘速度。目標(biāo)能執(zhí)行的最大 JT

21、AG 速度取決于目標(biāo)自身。一般來講,不帶 JTAG同步邏輯的 ARM 內(nèi)核(如 ARM7-TDMI)能執(zhí)行與 CPU 速度相當(dāng)?shù)?JTAG 速度。而帶 JTAG 同步邏輯的 ARM 內(nèi)核(例如 ARM7-TDMI-S,ARM946E-S,ARM966EJ-S)能執(zhí)行相當(dāng) CPU 速度 1/6的 JTAG 速度。JTAG 速度不應(yīng)超過 10 MHz。自動 JTAG 速度由 TAP 控制器選擇最大的 JTAG 速度。要注意,不帶同步邏輯的 ARM 內(nèi)核可能會工作不穩(wěn)定。因?yàn)?CPU 內(nèi)核時鐘可能慢于最大 JTAG 速度。附:J-Link分銷點(diǎn): 傳真:市新模范馬路17號02幢二層(210003)9

22、地區(qū)銷售點(diǎn)地 址電 話華北海淀區(qū)知春路 118 號知春電子城 B193 柜/ 62526647區(qū)鞍山西道 323 號增 1 號/ 27471810華南深南中路賽格電子市場 3 樓 3B35 柜/ 83681644深南中路電子世界一樓 20A257 柜/ 83665281廣州廣州天河區(qū)天河路龍?jiān)? 棟 506 室/ 87543761華東東路賽格電子市場 2A19-2A20 柜/ 53082644太平洋電腦城三樓 347 室/ 54901862珠江路雄獅電子商城 A529 柜/ 83675529中山東路 110 號華龍電子商城二樓 96柜/ 84412638杭州杭州登云路 639 號杭州電子市場

23、1C205 柜西北西安西安西部電子商城 2 樓 C 區(qū) 2C033-035/ 88270877東北沈陽沈陽三好街 90 號甲百腦匯科技廣場 B 區(qū)-W35/ 83990602華中武昌珞瑜路 158 號華中數(shù)碼城 3098 室長沙長沙人民路 9 號百腦匯商城二樓 H23-25/ 4175141九龍街 67 號 10 樓00852-27303434第二章 在 EWARM 中生成一個新項(xiàng)目EWARM 是按項(xiàng)目進(jìn)行管理的,它提供了應(yīng)用程序和庫程序的項(xiàng)目模板。項(xiàng)目下面可以分級或分類管理源文件。允許為每個項(xiàng)目定義一個或多個編譯連接(build)配置。在生成新項(xiàng)目之前,必須建立一個新的工作區(qū)(Workspa

24、ce)。一個工作區(qū)中允許存放一個或多個項(xiàng)目。另外用戶最好建立一個的目錄存放自己的項(xiàng)目文件。例如在本指南中生成一個 C:ProgramfilesIAR SystemMy project 目錄?,F(xiàn)在雙擊桌面上的 IAR Embedded Workbench 圖標(biāo),出現(xiàn) IAR EWARM開發(fā)環(huán)境窗口。生成新的工作區(qū)(Workspace)選擇主菜單 File New Workspace 生成新工作區(qū)。生成新項(xiàng)目選擇主菜單 Project Create New Project,彈出生成新項(xiàng)目窗口,見圖 1。本例選擇項(xiàng)目模板(Project template)中的 Empty project。圖 1.

25、生成新項(xiàng)目窗口在 Tool chain 欄中選擇 ARM,然后點(diǎn)擊 OK 按鈕。在彈出的另存為窗口中瀏覽和選擇新建的 My projects 目錄,輸入文件名 project1,然后保存。這時在屏幕左邊的 Workspace 窗口中將顯示新建的項(xiàng)目名。見圖 2 所示: 傳真:市新模范馬路17號02幢二層(210003)10圖 2.Workspace 窗口IAR EWARM 提供兩種缺省的項(xiàng)目生成配置,即 Debug 和 Release。本例在 Workspace 窗口頂部的下拉菜單中選取 Debug?,F(xiàn)在 My projects 目錄下已生成一個 project1.ewp 文件。該文件中包含與

26、project1 項(xiàng)目設(shè)置有關(guān)的信息,如 build 選件等。項(xiàng)目名后綴上的號表示該工作區(qū)有改變但還沒有被保存。本例調(diào)用 prf 庫函數(shù),這是在 C-SPY 模擬器中的一個低級 write 函數(shù)。如果用戶希望在真實(shí)硬件上以 release 配置運(yùn)行例子,就必須提供與硬件相適配的 write 函數(shù)。 保存工作區(qū)先選擇主菜單 File Save Workspace,瀏覽并選擇 My projects 目錄。然將工作區(qū)取名為 tutorials輸進(jìn) File name 輸入框,按保存按鈕退出。這時在 My projects 目錄下將生成一個 tutorials.eww文件,該文件中保存了用戶添加到

27、tutorials 工作區(qū)中的所有項(xiàng)目。窗口和斷點(diǎn)放置等與當(dāng)前操作有關(guān)的其他信息則被在 My projects settings 目錄下的文件中。3 給項(xiàng)目添加文件采用 armtutor 目錄下的兩個源文件,Tutor.c 和 Utilities.c。本例Tutor.c 是一個只用到標(biāo)準(zhǔn) C 語言的簡單程序。它用 Fibonacci 數(shù)列的前十個數(shù)初始化一個數(shù)組,并把結(jié)果打印到 stdout;Utilities.c 包含計(jì)算 Fibonacci 數(shù)列的實(shí)用程序。IAR EWARM 允許生成若干個源文件組。用戶可以根據(jù)項(xiàng)目需要來組織自己的源文件。但在本例中沒有必要。 在 Workspace 中選

28、擇希望添加文件的目的地,可以是項(xiàng)目或源文件組。本例直接選 project1。: 傳真:市新模范馬路17號02幢二層(210003)11 選擇主菜單 Project Add Files 打開標(biāo)準(zhǔn)瀏覽窗口,見圖 3。選擇安裝目錄ARMtutor 下的上述 2個文件,點(diǎn)擊打開按鈕,把它們添加到 Project1 目錄下。圖 3. 添加文件窗口4.設(shè)置項(xiàng)目選件生成新項(xiàng)目和添加文件后就應(yīng)該為項(xiàng)目設(shè)置選件。IAR EWARM 允許為任何一級目錄和文件單獨(dú)設(shè)置選件,但是用戶必須為整個項(xiàng)目設(shè)置通用的編譯連接(build)選件。選擇通用選件選中Workspace 中的project1 Debug,然后選擇主菜單

29、 Project Options。也可以先選擇 project1 Debug,然后選擇鼠標(biāo)右鍵命令中的 Options。圖 4. 項(xiàng)目通用選件窗口在打開的 Options 窗口左邊的 Category 中選擇 General Options。然后分別在: 傳真:市新模范馬路17號02幢二層(210003)12-頁面/Core 條目下選擇 ARM7TDMI-SOutput 頁面中,Output file 條目下選擇 ExecutableLibrary Configuration 頁面中,Library 條目下選擇 Normal選擇編譯器選件在 Options 窗口的 Category 中選擇 C

30、/C+ Compiler,見圖 5。圖 5. C/C+ Compiler 選件窗口然后在:-Language 頁面中,選擇 C,Allow IAR extens 等Optimization 頁面中,選擇 Generate debug information Output 頁面中,選擇 Output list file 和 Assemble mnemonicsList 頁面中,選擇 Output list file。并選擇 Assembler mnemonics 和 Diagnostics點(diǎn)擊 OK 按鈕,確認(rèn)選擇的選件在設(shè)置項(xiàng)目選件窗口中有許多其他信息。由于本例比較簡單,所以不涉及這些內(nèi)容。:

31、 傳真:市新模范馬路17號02幢二層(210003)13第三章 編譯和連接應(yīng)用程序這一步編譯和連接(build)項(xiàng)目程序,同時生成一個編譯器列表文件(compiler list file)和儲器分配文件(linker map file)。接器存1編譯源文件選中 workspace 中 utilities.c 文件。選擇主菜單Project Compile,或工具條中的 Compile 按鈕,或按右鍵后選擇 Compile 命令。編譯結(jié)束后在消息窗口中出現(xiàn)如圖 6 中的信息。圖 6. Build 窗口中的編譯處理消息用同樣的方法編譯 tutor.c。編譯完成后在 My projects 目錄下將

32、生成一批新子目錄。因?yàn)樵诮⑿马?xiàng)目時選擇 Debug 配置,所以在 My projects 目錄下自動生成一個Debug 子目錄。Debug 子目錄下又包含另 3 個子目錄,名字分別為 List、Obj、Exe。它們的用途如下:List 目錄存下放列表文件,列表文件的后綴是 lst;Obj 目錄下存放 Compiler 和 Assembler 生成的目標(biāo)文件,這些文件的后綴為 r79,可以用作 IAR XLINK 連接器的輸入文件;Exe 目錄下存放可執(zhí)行文件,這些文件的后綴為 d79,可以用作 IAR C-SPY 調(diào)試器的輸入文件,注意在執(zhí)行連接處理之前這個目錄是空的。點(diǎn)擊 project1

33、 Debug 前面的+號將目錄展開。你可以從自動生成的 Output 目錄中看到所有生成的輸出文件名以及反映相互依賴關(guān)系的的頭文件名。: 傳真:市新模范馬路17號02幢二層(210003)14圖 7. 編譯處理后的文件結(jié)構(gòu)2查看編譯器列表文件現(xiàn)在通過改變編譯器選件中的優(yōu)化級別(Optimization)來觀察 list 文件是如何自動更新生成的代碼量的。 list 文件的結(jié)構(gòu)雙擊 Workspace 窗口中的 Utilities.lst,打開 list 文件,它包含以下信息: 顯示編譯器的版本信息,列表文件生成時間,source 文件、list 文件和 object 文件的名字和路徑,編譯命令

34、行及選件等信息。文件頭文件體 顯示為每條源語句生成的匯編代碼和二進(jìn)制代碼,以及變量如何被分配到不同的段。文件尾 顯示所需的堆棧、程序代碼以及數(shù)據(jù)器的總量,同告錯誤和警告信息。 選擇主菜單 Tools Options 彈出 IDE Options窗口,選擇 Editor 頁面。選擇 Scan for ChangeFiles 選件。此選件將自動打開編輯窗口中的文件,目前是 Utilities.lst 文件。按 OK 按鈕。: 傳真:市新模范馬路17號02幢二層(210003)15圖 8.IDE Option 窗口 選中 Workspace 窗口中的 Utilities.c,按鼠標(biāo)右鍵選擇彈出框中的

35、 Options。從彈出的框左邊的Category 中選擇C/C+ Compiler 并確定Override inherited settings。打開 Optimization 頁面,把優(yōu)化級別從 None 改定為 High。然后按 OK 按鈕。 重新編譯 Utilities.c,請注意這時編輯窗口中的 Utilities.lst 文件已經(jīng)自動被刷新。文件尾顯示的代碼大小已經(jīng)因優(yōu)化級別的升高而減小。 對本例而言,Optimization 應(yīng)選擇 None。所以在連接處理前應(yīng)該將優(yōu)化級別恢復(fù)到原來的設(shè)置。這時應(yīng)選中 Utilities.c,按鼠標(biāo)右鍵選擇彈出框中的 Options。選擇 C/C

36、+ Compiler 并取消Override inherited settings。然后重新編譯 Utilities.c。3連接應(yīng)用程序 先選中Workspace 窗口中的 Project1 Debug,然后選擇主菜單 Project Options,彈出 Options窗口,見圖 9。在左邊的 Category 中選擇 Linker,顯示 IAR XLINK 的各選件頁面。: 傳真:市新模范馬路17號02幢二層(210003)16圖 9. XLINK 參數(shù)選件窗口本例全部采用缺省的連接處理選件。但是仍需要強(qiáng)調(diào)一下輸出文件格式和 Linker 命令行文件的選擇方法:輸出格式選擇合適的輸出格式十

37、分重要。你可能需要將輸出文件送給一個調(diào)試器進(jìn)行調(diào)試,這時就要求輸出格式帶有調(diào)試信息。本例采用適合C-SPY 調(diào)試器的缺省輸出選件,它們是Debug information for C-SPY、With runtime control modules 和With I/O emulation modules。指示需要連接將 stdin 和stdout 指向 C-SPY 的 I/O 窗口的低級例程。如果用戶希望把應(yīng)用或 Motorola S-records。到一個 PROM 編程器時,則其輸出格式不需要帶調(diào)試信息,如el-hex在 list 頁面中選擇 GeneraMAP 文件。inker list

38、ing 和 Segment map(見圖 10)。允許生成器分配注)本例連接器命令文件中的定義不與任何特定的硬件相關(guān)聯(lián)。EWARM 提供的連接器命令文件模板都可以在模擬器(simulator)中使用。但是如果要把它們用于目標(biāo)系統(tǒng)時必須與實(shí)際的硬件器分布相適配。用戶可以從src exles 目錄中找到與評估板相關(guān)的連接器命令: 傳真:市新模范馬路17號02幢二層(210003)17文件。連接器命令文件在連接器命令文件中,用于段(segment)控制的 XLINK 命令行是用來放置段的。熟悉連接器命令文件和段的放置十分重要。用戶可以從 ARM IAR C/C+ Compiler Reference

39、 Guide 中了解更多信息。本例使用缺省的連接器命令文件,請見圖 9 或圖 10 中的 Config 頁面。用戶如果要檢查連接器命令文件,需用合適的文本編輯器,例如 IAR EWARM 的編輯器。也可以打印出來,檢查各項(xiàng)定義是否符合要求。點(diǎn)擊 OK 按鈕保存 IAR XLINK 選件選擇主菜單 Project Make 或鼠標(biāo)右鍵 Make 命令,連接目標(biāo)文件,生成可執(zhí)行代碼。Build 消息窗口中將顯示連接處理的消息。連接的結(jié)果將生成一個帶調(diào)試信息的代碼文件project1.d79 和一個器分配(MAP)文件 project1.map。圖 10. XLINK 選件中的 list 頁面4查看

40、MAP文件雙擊 Workspace 中的 project1.map 文件名,編輯器窗口中將顯示該 MAP 文件。從 MAP 文件中可以了解以下內(nèi)容:-文件頭中顯示連接器版本,輸出文件名以及連接命令使用的選件。: 傳真:市新模范馬路17號02幢二層(210003)18-CROSS REFERENCE 段顯示程序地址。RUNTIME M段顯示使用的運(yùn)行時模塊的屬性。MODULE MAP 段顯示所有被連接的文件。每個文件中,作為應(yīng)用程序一部分加載的有關(guān)模塊的信息,包括各段和每個段中的全局符號都列出來。SEGMENTS IN ADDRESS ORDER 段列出了組成應(yīng)用程序的所有段的起始地址和結(jié)束地址

41、,字節(jié)數(shù),類型和對齊標(biāo)準(zhǔn)等。END OF CROSS REFERENCE 段落顯示總的代碼和數(shù)據(jù)字節(jié)數(shù)。-到此為止,已經(jīng)生成 project1.d79 應(yīng)用程序并可以用于在 IAR C-SPY 中調(diào)試。:成為 IAR 公司 8051 開發(fā)工具商2 月 23 日,中國:IAR 公司宣布支持 ARM Cortex M32 月 28 日,瑞典: 傳真:市新模范馬路17號02幢二層(210003)19IAR 公司今天宣布了在集成開發(fā)環(huán)境 EWARM 中支持新的 ARM Cortex M3(CM3)架構(gòu),這在 ARM 第工具合作伙伴中,首個宣布支持該架構(gòu)。新的EWARM 集成開發(fā)環(huán)境中將會包含一個高度優(yōu)

42、化Thumb2指令的 C/C+編譯器。4 月份,IAR 將在一些選定的合作伙伴中進(jìn)行該編譯器的版測試,同時還將發(fā)布新版的 USB 接口的 J-Link JTAG 仿真器,無縫支持 Cortex M3 新處理器的調(diào)試和 flash 燒寫功能。IAR 公司今天宣布 電子成為其 8051 開發(fā)工具 商,并在其 發(fā)布的 7.20c 版的 EW8051 集成開發(fā)環(huán)境中,無縫集成了 Insight 仿真器的系列驅(qū)動。雙方在軟硬件技術(shù)上的互補(bǔ)能力,使得該工具包比同類競爭產(chǎn)品代碼效率提高 15%-20%,并實(shí)現(xiàn)完全實(shí)時的 調(diào)試。雙方同時聯(lián)合宣布 發(fā)布一套市場售價為 2,900 元的 8051 開發(fā)工具包,其中

43、包含:1 套 8k 代碼限制版的 IAR EW8051 集成開發(fā)1 個 Insight 8051 仿真器(用戶可從8051 系列仿真器中選配 1 款,以適用不同的 8051)該工具包即日起于電子13 個直銷點(diǎn)上柜銷售。雙方在技術(shù)上將緊密配合,進(jìn)一步為國內(nèi)外 8051 廠商提供工具鏈定制的服務(wù)。第四章 用 C-SPY 調(diào)試應(yīng)用程序本例使用C-SPY 的模擬器(Simulator)來展現(xiàn)IAR C-SPY調(diào)試器的基本特點(diǎn)。前面各節(jié)生成的project1.d79應(yīng)用程序已經(jīng)可以用 C-SPY 調(diào)試器進(jìn)行調(diào)試。用戶利用調(diào)試器可以查看變量、設(shè)置斷點(diǎn)、觀察反匯編代碼、監(jiān)視寄存器和器、在 Terminal

44、I/O 窗口打印輸出。1開始調(diào)試在開始調(diào)試之前必須設(shè)置幾個 C-SPY 選件。具體操作如下: 選擇主菜單 Project Option,選擇 Category 中的Debugger。在 Setup 頁面,在Driver 的下拉菜單中選擇 Simulator,同時選擇 Run to main,點(diǎn)擊 OK。如果用戶已經(jīng)了 IAR 的 JTAG 仿真器,請選擇 J-Link。 選擇主菜單 Project Debug 或工具條上的 Debugger 按鈕。IAR C-SPY 將開始裝載 project1.d79。除了已經(jīng)打開的窗口外,將顯示一組 C-SPY窗口。2組織窗口在 EWARM 中可以固定窗口

45、(所謂 dock),也可以組織成書簽形式,也可以讓它們浮動。改變浮動窗口的大小時其他窗口不受影響。注意 EWARM IDE 窗口最底部的狀態(tài)條中包含如何安排窗口的有用信息。詳細(xì)信息請參見 77 頁anizing the windows on screen。在開始調(diào)試前請確認(rèn)如圖 11 所示的各窗口和內(nèi)容已經(jīng)顯示在屏幕上。在編輯器窗口應(yīng)能看到源文件Tutor.c 和 Utilities.c 以及 Debug Log 消息窗口。3檢查源語句 檢查源語句,雙擊 Workspace 中的 Tutor.c; 在編輯器顯示文件 Tutor.c 后,用 Debug Step Over 命令(或 F10),步

46、進(jìn)到init_fib 函數(shù)調(diào)用語句; 用 Debug Stnto 命令(或 F11)進(jìn)入函數(shù) init_fib;注)Step Over 命令用來執(zhí)行源程序中的一條語句或一條指令,即使這條語句是一函數(shù)調(diào)用語句。: 傳真:市新模范馬路17號02幢二層(210003)20而 St當(dāng)執(zhí)行 Stnto 命令則進(jìn)入到函數(shù)或子程序調(diào)用nto 后,活躍窗口已經(jīng)切換到 Utilities.c,因?yàn)?init_fib 在這個文件里。 繼續(xù)用 Stnto 命令直到 for 循環(huán)語句; 再用 Step Over 命令回到 for 循環(huán)的頭。請注意,現(xiàn)在是在函數(shù)調(diào)用級上而不是語句級步進(jìn)。注)還有一種語句級步進(jìn)令,Deb

47、ug Next sement 或工具條上的 Next sement 按鈕。這條命令與 Stnto 和 Step over 不同。圖 11. C-SPY 調(diào)試窗口4檢查變量C-SPY 允許在源程序上查看變量或表達(dá)式,所以可以在執(zhí)行程序過程中它們的值的變化。查看變量的方法有幾種,在源碼窗口用鼠標(biāo)雙擊變量名、然后打開 Locals、Live Watch 或 Auto 窗口。如何檢查變量的更詳細(xì)信息請看章節(jié) Working with variables and express。注) 當(dāng)采用 None 優(yōu)化級時,所有的非靜態(tài)變量在它們的活動范圍內(nèi)都是活躍的,所以這些變量是完全能夠調(diào)試的。但如果使用更高級

48、別的優(yōu)化,變量可能不能完全調(diào)試。 利用 Auto 窗口查看變量選擇 View Auto 打開 Auto 窗口。觀察變量如何變化。Auto 窗口顯示最近修改過的表達(dá)式的當(dāng)前值,單步執(zhí)行程序: 傳真:市新模范馬路17號02幢二層(210003)21圖 12. Auto 窗口中檢查變量設(shè)置一個 Watchpo,利用 Watch 窗口查看變量選擇View Watch 打開 Watch 窗口。 請注意Watch 窗口和 Auto 窗口按書簽形式顯示。按以下步驟在變量 i 上設(shè)置一個 Watchpo。-點(diǎn)擊 Watch 窗口中的虛線框,當(dāng)輸入?yún)^(qū)出現(xiàn)時輸入 i,然后按 Enter 鍵。也可以從編輯器窗口拖一

49、個變量到 Watch 窗口。雙擊 init_fib 函數(shù)中的 root 數(shù)組名,將其拖到 Watch 窗口。Watch 窗口將顯示 i 和 root 的值。將 root 展開觀察每個元素的值。-圖 13. Watch 窗口-繼續(xù)執(zhí)行單步,觀察 i 和 root 值的變化。從 Watch 窗口中除去一個變量時,只需選擇它然后刪除。5設(shè)置和監(jiān)視斷點(diǎn)IAR C-SPY 具有強(qiáng)大的斷點(diǎn)功能。詳細(xì)請見手冊 131 頁 The breakposystem。設(shè)置斷點(diǎn)最簡單的方法是將光標(biāo)定位到某條語句,然后按鼠標(biāo)右鍵選擇 Toggreakpo命令。實(shí)驗(yàn): 傳真:市新模范馬路17號02幢二層(210003)22

50、方法如下: 設(shè)置斷點(diǎn)用下面方法在 get_fib(i)語句上設(shè)置斷點(diǎn)。在編輯器窗口顯示 utilities.c。點(diǎn)擊要設(shè)置斷點(diǎn)的語句,選擇主菜單 Edit Togg現(xiàn)斷點(diǎn)標(biāo)記。reakpo。也可以按工具條上的 Toggreakpo按鈕。這時該語句上將出如果要查看剛定義的斷點(diǎn),選擇主菜單View Breakpo也顯示有關(guān)斷點(diǎn)執(zhí)行的信息。打開 Breakpo窗口。在 Debug Log 窗口圖 14. 設(shè)置斷點(diǎn) 執(zhí)行到斷點(diǎn)選擇主菜單Debug Go 或者工具條上的 Go 按鈕都可以讓程序執(zhí)行到斷點(diǎn)。Watch 窗口將顯示 root表達(dá)式的值。Debug Log 窗口將顯示關(guān)于斷點(diǎn)的信息。 消除斷點(diǎn)

51、可用主菜單 Edit Toggreakpo或按鼠標(biāo)右鍵選擇 Toggreakpo。6在反匯編窗口上調(diào)試通常,在 CC+程序上調(diào)試應(yīng)該更快速和更直接。但是如果用戶希望在反匯編程序上調(diào)試,C-SPY 也提供了這種功能,而且 C-SPY 允許方便地在兩種方式上切換。反匯編程序的調(diào)試方法如下: 按 Reset 按鈕復(fù)位應(yīng)用程序。 調(diào)試時反匯編窗口通常是打開的。如果還沒打開可以選擇主菜單View Disassembly 打開反匯編窗口。: 傳真:市新模范馬路17號02幢二層(210003)23圖 15. 反匯編窗口反匯編窗口如圖 15 所示。可以看到匯編代碼與 C 語句一一對應(yīng)。用上面介紹的幾種單步命令

52、執(zhí)行程序觀察結(jié)果。7監(jiān)視寄存器寄存器窗口允許用戶監(jiān)視和修改 CPU 寄存器的內(nèi)容。具體方法如下:選擇主菜單 View Register 打開寄存器窗口,見圖 16。圖 16. 寄存器窗口用 Step Over 命令執(zhí)行下一條指令,觀察寄存器窗口中的數(shù)據(jù)如何變化。關(guān)閉寄存器窗口。: 傳真:市新模范馬路17號02幢二層(210003)248查看器用戶可以在器窗口監(jiān)視所選擇的器區(qū)域。下面是檢查與變量 root 有關(guān)的器內(nèi)容。選擇主菜單 View Memory 打開器窗口,見圖 17(用 8-bit 顯示數(shù)據(jù))。激活 Utilities.c 窗口并雙擊變量 root。用鼠標(biāo)將其拖到器窗口。如果希望以

53、16-bit 顯示數(shù)據(jù),在器窗口定部的下拉菜單中選擇 2x Units 命令。如果 C 應(yīng)用程序的 init_fib 函數(shù)沒有初始化所有的器單元,繼續(xù)執(zhí)行單步,同時觀察器的內(nèi)容是如何修改的。用戶可以在器窗口修改單元的內(nèi)容。只需把點(diǎn)放在希望修改的地方,然后輸入新值就可以了。關(guān)閉器窗口。圖 17.8-bit 模式顯示器窗口圖 18.16-bit 模式顯示器窗口9觀察Terminal I/O用戶有時可能希望調(diào)試應(yīng)用程序中的 stdin 和 stdout 結(jié)構(gòu),但是又沒有實(shí)際的硬件支持,C-SPY 允許用戶使用 Terminal I/O 模擬 stdin 和 stdout。注)Terminal I/O

54、 只有在使用了連接輸出文件選件With I/O emulation module 時才可用。也就是說,某些把 stdin 和 stdout 指向 Terminal I/O 的低級例程將被連接進(jìn)應(yīng)用程序。: 傳真:市新模范馬路17號02幢二層(210003)25 選擇主菜單 View Terminal I/O 顯示 I/O 操作的輸出,見圖 19。Terminal I/O 窗口顯示的內(nèi)容取決于應(yīng)用程序執(zhí)行了多遠(yuǎn)。圖 19. Terminal I/O 窗口10執(zhí)行程序到結(jié)束 選擇主菜單Debug Go 或工具條上的 Go 按鈕。因?yàn)橹挥幸粋€斷點(diǎn),所以程序一直執(zhí)行到結(jié)束。同時在 Debug Log

55、窗口顯示已經(jīng)到達(dá)程序 exit 的消息,見圖 20。圖 20. Debug Log 窗口 如果要求復(fù)位應(yīng)用程序,選擇主菜單 Debug Reset 或工具條上的 Reset 按鈕。 如果要退出 C-SPY,選擇 Debug Stop Debugging,或工具條上的 Stop Debugging 按鈕。C-SPY 還提供許多其他的調(diào)試功能,如宏和中斷模擬等,將在指南的其他章節(jié)。有關(guān)如何使用Debug功能的詳細(xì)介紹請見手冊 Part 4。C-SPY 的特點(diǎn)介紹請見手冊 Part 7 以及聯(lián)機(jī)幫助信息。: 傳真:市新模范馬路17號02幢二層(210003)26:IAR 公司發(fā)布首款 ARM Tra

56、ce 仿真器2 月 14 日,德國紐倫堡: 傳真:市新模范馬路17號02幢二層(210003)27IAR 公司今天發(fā)布了其 ARM 系列調(diào)試工具中的新一代產(chǎn)品:硬件調(diào)試設(shè)備 IAR J-Trace。它支持所有帶 ETM (Embedded Trace Macrocell) 的 ARM7 和 ARM9 處理器,通過全速 USB 2.0 接口與主機(jī)連接,并提供 2M 字節(jié)的 Trace 緩存,IAR 公司新版 EWARM 能夠完全支持 J-Trace。該 Trace 仿真器零售價僅為 1195 ,由于還帶有標(biāo)準(zhǔn) JTAG 接口,IAR J-Trace 對于絕大多數(shù)開發(fā)者而言都可以是唯一需要的 AR

57、M 硬件調(diào)試設(shè)備。技術(shù)細(xì)節(jié)Trace 規(guī)格USB 驅(qū)動的 JTAG 和 Trace (38-pictor) 接口; Trace 支持最高 200 MHz 全速時鐘和 100 MHz支持所有 ARM7 和 ARM9 處理器;半速時鐘無需電源,通過 USB 接口供電;也帶有外接電源插口; Trace 功能基于 ARM ETM (Embedded Trace集成在 IAR Embedded Workbench for ARM 中,易于Macrocell)設(shè)置和使用。 Trace 支持帶有內(nèi)置 Trace 端口的設(shè)備2M 字節(jié) Trace 緩存基本性能 體積緊湊,易于放置在桌面JTAG 速率 12 M

58、Hz 安靜,無風(fēng)扇設(shè)計(jì)自動速率識別 支持 cycle accurate 和 compressed tracingUSB 2.0 全速(12Mbit/sec) 支持 4 位 / 8 位 / 16 位的 Trace 端口,每種端基于 RTCK JTAG 信號的自適應(yīng)時鐘口均支持全速時鐘和半速時鐘所有信號均可;目標(biāo)電壓可測量 集成在 IAR Embedded Workbench for ARM 中,20-pin 標(biāo)準(zhǔn) JTAG 接口,38-pin 標(biāo)準(zhǔn) Trace Mictor 接口易于設(shè)置和使用含 USB 電纜,20-pin 扁平電纜和 38-prace 電纜 Trace 窗口與 Source 和

59、 Disassembly 窗口同步支持的主機(jī)操作系統(tǒng):Windows 2000 和 Windows XP Function Trace 能夠分層次地顯示被調(diào)用的函數(shù)與 C-SPY 調(diào)試器全面集成;進(jìn)階的調(diào)試功能都可以在C-SPY 中使用“IAR J-Trace 使得 IAR Systems 為 ARM 開發(fā)者提供的工具鏈更為完整,IAR 公司如今能夠?yàn)樗胁煌N類的STR ARM 微控制器用戶提供完美的服務(wù)。”Mr.Dominique Jugnon,意法半導(dǎo)體微控制器開發(fā)工具經(jīng)理“IAR J-Trace 對于 的汽車客戶來說將會極有價值。在這一價位提供的功能允許大多數(shù)開發(fā)者方便地使用先進(jìn)的 T

60、race 調(diào)試方案,提高開發(fā)質(zhì)量?!盡r. Gualtiero Bagnuoli,Micronas 的汽車產(chǎn)品應(yīng)用經(jīng)理“ ,該產(chǎn)品的發(fā)布將給 ARM 硬件調(diào)試工具市場帶來改變”。他總結(jié)道:“內(nèi)嵌一定容量 Flash Memory的 ARM 處理器的使用者現(xiàn)在有了一個完整的高端開發(fā)工具解決方案:IAR Embedded Workbench for ARM BaseLine版本,一塊開發(fā)板以及 IAR J-Trace 調(diào)試工具,總價低于 4000 !”Mr. Mike SkrtiR 公司的開發(fā)套件經(jīng)理第五章 EWARM Flash Loader 開發(fā)指南本章包含以下內(nèi)容:到 RAM 中到 Flas

溫馨提示

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

評論

0/150

提交評論