freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

arm嵌入式linux系統(tǒng)開(kāi)發(fā)詳解-閱讀頁(yè)

2025-05-14 01:28本頁(yè)面
  

【正文】 看各開(kāi)發(fā)工具的版本:$ gcc versiongcc (GCC) (cygming special) (gdc , using dmd )Copyright (C) 2022 Free Software Foundation, Inc.This is free software。 not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.$ gdb versionGNU gdb (cygwinspecial)Copyright 2022 Free Software Foundation, Inc.GDB is free software, covered by the GNU General Public License, and you arewele 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 GDB. Type show warranty for details.This GDB was configured as i686pccygwin. Linux常用工具目前大多數(shù)的 Linux發(fā)行版都提供了圖形界面作為默認(rèn)界面,但是,命令行工具在 Linux仍然很重要。學(xué)習(xí)使用 Linux系統(tǒng),命令行工具是基礎(chǔ)。 Linux Shell和常用命令使用過(guò) DOS系統(tǒng)和 Windows 中斷控制臺(tái)的人對(duì)命令行界面都有一定體會(huì)。 Shell程序負(fù)責(zé)接受用戶的輸入,解析用戶輸入的命令和參數(shù),調(diào)用相應(yīng)的程序,并給出結(jié)果和出錯(cuò)提示。 Bash支持功能強(qiáng)大的腳本、命令行歷史記錄、終端彩色輸出等功能。在 Linux系統(tǒng)中,僅有內(nèi)核還是不夠的,需要應(yīng)用程序支持才能發(fā)揮內(nèi)核提供的功能。 Linux Shell和常用命令命令 作用 常用參數(shù) 參數(shù)作用ls 列出指定目錄的列表,包括文件和子目錄。l 以列表方式查看a 顯示隱含文件和目錄h 以便于人閱讀的方式查看文件的大小ln 建立連接 s 軟連接f 連接是一個(gè)目錄df 查看磁盤(pán)空間 h 以便于人閱讀的方式查看文件的大小du 查看指定目錄占用的空間。非 root用戶只能修改自己的密碼。 R 遞歸調(diào)用chgrp 修改文件或目錄的用戶組。 R 遞歸調(diào)用date 查看日期 cat 輸出文件內(nèi)容到屏幕。 uname 查看機(jī)器名稱。 vi編輯器的功能十分強(qiáng)大,并且非常小,適合安裝在嵌入式系統(tǒng)使用。本書(shū)有關(guān) vi的使用僅涉及基本操作,目的是幫助初學(xué)者學(xué)習(xí) vi的基本操作。vi編輯器支持編輯模式、瀏覽模式、插入模式和可視模式四種模式。當(dāng)啟動(dòng) vi的時(shí)候,默認(rèn)進(jìn)入瀏覽模式。 文本編輯工具 vi 搜索工具 find和 grepfind和 grep是 Linux系統(tǒng)最常用的兩個(gè)搜索工具。grep支持正則表達(dá)式(一種描述字符串特征的語(yǔ)法),通過(guò)在一個(gè)或多個(gè)文件中搜索字符串,符合的內(nèi)容被送到屏幕顯示。 grep通過(guò)返回值表示搜索狀態(tài),如果搜索成功返回 0,如果失敗返回 1,如果搜索的文件不存在返回 2。 FTP工具FTP是標(biāo)準(zhǔn)的互聯(lián)網(wǎng)文件傳輸協(xié)議,被廣泛的應(yīng)用于網(wǎng)絡(luò)文件傳輸,是不同機(jī)器間文件傳輸簡(jiǎn)單有效的方法。在許多系統(tǒng)上都提供了FTP客戶端軟件,用來(lái)從 FTP服務(wù)器下載或者上傳文件。 FTP工具命令名稱 含義dir 列出服務(wù)器的目錄cd 改變服務(wù)器上的目錄lcd 改變本地目錄ascii 使用文本方式傳輸文件binary 使用二進(jìn)制方式傳輸文件bye 退出 ftp工具h(yuǎn)ash 顯示文件傳輸進(jìn)度get 從服務(wù)器下載文件put 上傳文件到服務(wù)器! 切換到 shell界面,在 shell中使用 exit命令可以退回 ftp界面 串口工具 mini串口是嵌入式開(kāi)發(fā)使用最多的通信方式。本節(jié)介紹 mini的使用。軟件安裝好后,第一次使用之前需要配置 mini。作為開(kāi)發(fā)環(huán)境, Windows 下通常運(yùn)行一些客戶端和代碼管理工具、文檔管理工具等。 代碼編輯管理工具 SourceInsightSourceInsight是一個(gè)功能強(qiáng)大的代碼管理工具。 SourceInsight對(duì) C語(yǔ)言代碼支持最好,本節(jié)介紹 SourceInsight安裝和使用。實(shí)際上,XShell不僅支持串口連接,還可以連接 Tel服務(wù)器、 SSH服務(wù)器等。在沒(méi)有 IDE之前,開(kāi)發(fā)軟件過(guò)程中的編輯,編譯,調(diào)試需要不同的工具操作,不僅效率低而且容易出錯(cuò)。 ARM開(kāi)發(fā)有標(biāo)準(zhǔn)的開(kāi)發(fā)環(huán)境 ARM Development Suit,簡(jiǎn)稱 ADS。 ADS包括程序庫(kù)、命令行開(kāi)發(fā)工具、圖形界面、調(diào)試工具和代碼編輯器等。1. C語(yǔ)言編譯器 armcc2. C++語(yǔ)言編譯器 armcpp 配置 ADS調(diào)試環(huán)境在使用 ADS之前,需要安裝 ADS開(kāi)發(fā)環(huán)境。 建立自己的工程本節(jié)介紹如何在 ADS環(huán)境下建立自己的工程并且編譯生成目標(biāo)文件。開(kāi)發(fā)工具是嵌入式開(kāi)發(fā)過(guò)不可缺少的,每種工具都有自己的用途和范圍,讀者應(yīng)該多實(shí)踐,掌握常見(jiàn)的開(kāi)發(fā)工具使用方法。第 6章 第一個(gè) Linux應(yīng)用程序?qū)W習(xí)嵌入式程序開(kāi)發(fā)首先從最簡(jiǎn)單的程序開(kāi)始。本章目的是通過(guò)實(shí)際的程序向讀者介紹 Linux程序的基本框架和工作流程。這個(gè)程序很簡(jiǎn)單,卻展示了 C程序的基本要素:語(yǔ)法格式、引用頭文件、調(diào)用庫(kù)函數(shù)等。 用 vi編輯源代碼文件在 vi編輯器的用法,現(xiàn)在使用 vi編輯器編寫(xiě)第一個(gè)源代碼文件。在控制臺(tái)模式當(dāng)前目錄,輸入以下命令完成編譯:gcc 執(zhí)行程序到目前為止,第一個(gè)程序已經(jīng)編譯好了,下面就是執(zhí)行程序了??赡苡腥藭?huì)問(wèn)程序是如何輸出在屏幕上的。實(shí)例 61所示的基本程序涵蓋了執(zhí)行一個(gè) Linux應(yīng)用程序所有的細(xì)節(jié)。 窺視程序執(zhí)行中的秘密上面的程序執(zhí)行過(guò)程比較難理解,這里推薦使用 strace工具分析這個(gè)程序的執(zhí)行流程。動(dòng)態(tài)庫(kù)是 Linux系統(tǒng)最廣泛的一種程序使用方式,它的工作原理是相同功能的代碼可以被多個(gè)程序共同使用。使用程序動(dòng)態(tài)庫(kù)還有一個(gè)好處,就是可以減小應(yīng)用程序占用的空間和加載時(shí)間。在使用 gcc編譯 c語(yǔ)言源代碼文件的時(shí)候, gcc隱含進(jìn)行了兩個(gè)過(guò)程:編譯和連接。 編譯源代碼編譯的目的是把人書(shū)寫(xiě)的高級(jí)語(yǔ)言代碼翻譯成目標(biāo)程序的語(yǔ)言處理程序,編譯用的程序(例如 gcc)也可以稱為編譯系統(tǒng)。其中主要階段是詞法分析和語(yǔ)法分析,也可以稱為源代碼分析,分析過(guò)程中發(fā)現(xiàn)有語(yǔ)法錯(cuò)誤,給出提示信息。 gcc在連接用戶目標(biāo)文件的時(shí)候會(huì)根據(jù)用戶代碼使用不同的函數(shù)連接對(duì)應(yīng)的動(dòng)態(tài)或者靜態(tài)庫(kù)(根據(jù)連接選項(xiàng),默認(rèn)是動(dòng)態(tài)庫(kù)),同時(shí),還會(huì)對(duì)所有的目標(biāo)文件連接固定的預(yù)編譯好的系統(tǒng)目標(biāo)文件,這幾個(gè)預(yù)編譯好的目標(biāo)文件用來(lái)完成程序初始化,結(jié)束時(shí)的環(huán)境設(shè)置等。 Makefile有強(qiáng)大的功能,它記錄了文件之間的依賴關(guān)系,通過(guò)比對(duì)目標(biāo)文件和依賴文件的時(shí)間戳,決定是否需要執(zhí)行相應(yīng)的命令;同時(shí), Makefile還可以定義變量,接收用戶傳遞的參數(shù)變量,通過(guò)這些元素的相互配合,省去了繁雜的編譯命令,不僅節(jié)省時(shí)間,也減小了出錯(cuò)的概率。Makfile的語(yǔ)法結(jié)構(gòu)如下:(目標(biāo)文件):(依賴文件 1)(依賴文件 2)(依賴文件 … )(命令 1)(命令 2)(命令 … ) 如何使用 Makefile仍然以編譯 ,下面的步驟使用Makefile編譯和管理 。在 vi Makefile。在 vi插入模式,輸入下面的內(nèi)容。 好的源代碼管理習(xí)慣在一個(gè)軟件項(xiàng)目中,往往會(huì)將不同功能的代碼放在不同的文件中,這時(shí)候,一個(gè)好的代碼管理方法就顯得很重要,凌亂的代碼分布不僅對(duì)調(diào)試帶來(lái)很多麻煩,對(duì)以后的升級(jí)和維護(hù)都是一個(gè)不小的挑戰(zhàn)。通過(guò)實(shí)例分析了編譯和連接的原理,并且剖析了程序執(zhí)行的過(guò)程。請(qǐng)讀者多實(shí)踐,只有不斷的實(shí)踐才能對(duì)這部分的知識(shí)深入理解。第 7章 Linux應(yīng)用程序編程基礎(chǔ)Linux系統(tǒng)的應(yīng)用程序是為了完成某項(xiàng)或者某些特定任務(wù)的計(jì)算機(jī)程序,應(yīng)用程序和文檔組成了軟件。應(yīng)用程序運(yùn)行在獨(dú)立的進(jìn)程,擁有自己獨(dú)立的地址空間,通俗的說(shuō),在一個(gè)應(yīng)用程序看來(lái),他自己擁有計(jì)算機(jī)的資源,并不知道其他應(yīng)用程序的存在。在目前的嵌入式系統(tǒng)中,資源仍然是有限的。 C程序的內(nèi)存管理靈活,接口簡(jiǎn)單,這也是初學(xué)者容易出錯(cuò)的根本,讀者在學(xué)習(xí)本節(jié)內(nèi)容的時(shí)候應(yīng)注重多實(shí)踐。 堆和棧的區(qū)別1.棧棧( stack)是一個(gè)由編譯器分配釋放的區(qū)域,用來(lái)存放函數(shù)的參數(shù),局部變量等。當(dāng)調(diào)用函數(shù)時(shí),被調(diào)用函數(shù)的參數(shù)和返回值被存儲(chǔ)到當(dāng)前程序的棧區(qū),之后被調(diào)用函數(shù)在為自身的自動(dòng)變量和臨時(shí)變量在棧區(qū)上分配空間。這就是為什么 C語(yǔ)言函數(shù)參數(shù)如果不是指針的話,被修改的參數(shù)結(jié)果用戶無(wú)法得到的原因。棧的管理方式是 FILO( First In Last Out),稱作先進(jìn)后出,學(xué)過(guò)數(shù)據(jù)結(jié)構(gòu)的讀者知道,棧內(nèi)的數(shù)據(jù)是在一個(gè)方向管理的,先到達(dá)的數(shù)據(jù)最后被讀出來(lái),生活中就有這樣的例子,比如火車(chē)的棧,就是車(chē)頭先進(jìn)入,但是出來(lái)的時(shí)候卻是車(chē)尾先出來(lái),車(chē)頭最后出。這段區(qū)域由程序員管理,程序員利用操作系統(tǒng)提供的分配和釋放函數(shù)使用堆區(qū)的內(nèi)存。但是這并不是一個(gè)好的習(xí)慣,因?yàn)槎褏^(qū)的空間不是無(wú)限的,過(guò)多姆峙浠岬賈露涯詿嬉緋觶 ? 絳蛞斐I踔簾覽!堆的管理與棧不同,操作系統(tǒng)在堆空間維護(hù)一個(gè)鏈表(請(qǐng)參考數(shù)據(jù)結(jié)構(gòu)相關(guān)定義),每次程序員從堆分配內(nèi)存的時(shí)候操作系統(tǒng)會(huì)從堆區(qū)掃描未用空間,當(dāng)一個(gè)空間的大小符合申請(qǐng)空間的時(shí)候,就把此空間返回給程序員,同時(shí)會(huì)把申請(qǐng)的空間加入鏈表;當(dāng)程序員釋放一個(gè)空間的時(shí)候,操作系統(tǒng)會(huì)從堆的鏈表中刪除指定的節(jié)點(diǎn),并且把釋放的空間放回未用空間。這兩個(gè)函數(shù)都是 C標(biāo)準(zhǔn)庫(kù) , Linux系統(tǒng)函數(shù)原型:void *malloc(size_t size)。 實(shí)用的內(nèi)存分配函數(shù) calloc()和realloc()在 C程序開(kāi)發(fā)項(xiàng)目中,還有兩個(gè)實(shí)用的內(nèi)存分配函數(shù):calloc()用來(lái)分配一塊新內(nèi)存; realloc()用來(lái)改變一塊已經(jīng)分配的內(nèi)存的大小。1. calloc()函數(shù)2. realloc()函數(shù) 內(nèi)存管理編程實(shí)例本節(jié)給出一個(gè)內(nèi)存管理編程實(shí)例。程序在分配的內(nèi)存空間內(nèi)寫(xiě)入字符串,通過(guò)打印字符串到屏幕展示內(nèi)存分配的結(jié)果。包括文件指針的概念;文件和流之間的關(guān)系;文本和二進(jìn)制文件;和文件的基本操作。 文件指針和流文件是可以永久存儲(chǔ)的,有特定順序的一個(gè)有序,有名稱的字節(jié)組成的集合。本節(jié)描述的 ANSI文件只能用于普通文件操作。文件的打開(kāi)、讀寫(xiě)和關(guān)閉以及其他訪問(wèn)都要通過(guò)文件指針完成。 unsigned flags。 unsigned char hold。 unsigned char _FAR *buffer。unsigned istemp。 } FILE。文本文件也稱作 ASCII文件,每個(gè)自己存儲(chǔ)一個(gè)ASCII碼字符,文本文件存儲(chǔ)量大,便于對(duì)字符操作,但是操作速度慢;二進(jìn)制文件降數(shù)據(jù)按照內(nèi)存中的存儲(chǔ)形式存放,二進(jìn)制文件的存儲(chǔ)量小,存取速度快,適合存放中間結(jié)果。 標(biāo)準(zhǔn)輸入,標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)錯(cuò)誤Linux系統(tǒng)為每個(gè)進(jìn)程定義了標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤三個(gè)文件流,也稱作 I/O數(shù)據(jù)流。 stdin是標(biāo)準(zhǔn)輸入,默認(rèn)是從鍵盤(pán)讀取數(shù)據(jù); stdout是標(biāo)準(zhǔn)輸出,默認(rèn)向屏幕輸出數(shù)據(jù); stderr是標(biāo)準(zhǔn)錯(cuò)誤,默認(rèn)是向屏幕輸出數(shù)據(jù)。 C標(biāo)準(zhǔn)庫(kù)函數(shù) printf()默認(rèn)使用 stdout輸出數(shù)據(jù),用戶也可以通過(guò)重新設(shè)置標(biāo)準(zhǔn) I/O,把程序的輸入輸出結(jié)果定向到其他設(shè)備。同時(shí),使用緩沖也能提高應(yīng)用程序的讀寫(xiě)性能。行緩沖。 打開(kāi)關(guān)閉文件ANSI C文件庫(kù)定義了打開(kāi)文件函數(shù) fopen()和關(guān)閉文件函數(shù)fclose(),定義如下:FILE *fopen(const char *path, const char *mode)。mode參數(shù) 說(shuō)明r或 rb 為讀打開(kāi)文件w或 wb 為寫(xiě)打開(kāi)文件,并把文件長(zhǎng)度置為 0(清空文件)a或 ab 在文件結(jié)尾添加打開(kāi)r+或 r+b或 rb+ 為讀和寫(xiě)打開(kāi)w+或 w+b或 wb+ 為寫(xiě)打開(kāi)文件,并把文件長(zhǎng)度置 0(清空文件)a+或 a+b或 ab+ 在文件結(jié)尾讀寫(xiě)打開(kāi) 讀寫(xiě)文件一但成功打開(kāi)一個(gè)文件后,就可以進(jìn)行文件操作了,ANSI C文件庫(kù)提供了三種不同類(lèi)型的文件讀寫(xiě)函數(shù):每次一個(gè)字符的 I/O。成塊數(shù)據(jù)的 I/O。當(dāng)用戶在寫(xiě)入一些數(shù)據(jù)后,如果需要讀取之前寫(xiě)入的數(shù)據(jù),或者需要修改指定文件位置的數(shù)據(jù),就需要用到文件流定位功能。long ftell(FILE *stream)。 ANSI C文件編程實(shí)例在本節(jié)最后,給出一個(gè)文件編程實(shí)例,打開(kāi)一個(gè)文件,向文件寫(xiě)入三個(gè)字符串,然后重新定位文件流讀寫(xiě)指針到文件起始位置,從文件讀取剛寫(xiě)入的三個(gè)字符串到另一個(gè)緩沖,并且打印讀出來(lái)的字符串。最初由 IEEE(Institute of Electrical and Electronics Engineers, IEEE)開(kāi)發(fā),目的是為了提高 UNIX環(huán)境下的應(yīng)用程序可移植性。 POSIX是一組操作系統(tǒng)調(diào)用的規(guī)范,本節(jié)介紹其中的文件I/O編程規(guī)范。讀者可以把 POSIX文件操作理解為對(duì)設(shè)備驅(qū)動(dòng)操作的封
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1