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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于arm的mp3播放器設(shè)計(jì)-資料下載頁(yè)

2025-11-24 19:39本頁(yè)面

【導(dǎo)讀】未定義書(shū)簽。未定義書(shū)簽。

  

【正文】 onfig 配置 linux 內(nèi)核,即保留需要的內(nèi)容,這樣可以減少內(nèi)核文件的大小。 在 區(qū),我將系統(tǒng)分為了 4 個(gè)區(qū),分別是引導(dǎo)區(qū),內(nèi)核區(qū),文件系統(tǒng)區(qū)和保留區(qū),代碼如下: [0] = { .name = ―Boot Loader‖, .size = SZ_1M, 北京聯(lián)合大學(xué) 畢業(yè)設(shè)計(jì) 18 .offset = 0, }, [1] = { .name = ―Linux Kernel‖, .size = SZ_4M SZ_1M, .offset = SZ_1M, }, [2] = { .name = ―File System‖, .size = SZ_8M, .offset = SZ_4M, }, [3] = { .name = ―Reserved‖, .size = SZ_64M SZ_8M SZ_4M, .offset = SZ_4M + SZ_8M, } 這些代碼為對(duì) Nand Flash 的分區(qū)代碼,它會(huì)顯示在內(nèi)核啟動(dòng)信息中。在之后設(shè)置的 uboot 引導(dǎo)參數(shù),要將其設(shè)置為內(nèi)核所在分區(qū)的地址;最后制作的文件系統(tǒng)也要放到相應(yīng)分區(qū)。 .name 為分區(qū)名; .size 為分區(qū)大??; .offset 為分區(qū)起始地址相對(duì)于 0 的偏移??筛鶕?jù)自己喜好設(shè)定。 編譯內(nèi)核, 當(dāng)出現(xiàn)這些信息時(shí),代表編譯成功: Image Name: Created: Wed Mar 16 09:56:26 2021 Image Type: ARM Linux Kernel Image (unpressed) Data Size: 1910332 Bytes = kB = MB Load Address: 0x30008000 Entry Point: 0x30008000 Image arch/arm/boot/uImage is ready 編譯成功后將在 arch/arm/boot中生成可用于 uboot加載的 Linux內(nèi)核 ——uImage文件。 文件系統(tǒng) 的設(shè)計(jì) Linux 支持多種文件系統(tǒng),不同的文件系統(tǒng)類型也有著各自的特點(diǎn)。所以在選擇文 件系統(tǒng)類型的時(shí)候,就需要根據(jù)存儲(chǔ)設(shè)備的硬件特性和系統(tǒng)的需求進(jìn)行相應(yīng)的選擇。 北京聯(lián)合大學(xué) 畢業(yè)設(shè)計(jì) 19 在 Linux系統(tǒng)中,主要的存儲(chǔ)設(shè)備分為隨機(jī)存取存儲(chǔ)器 RAM和只讀存儲(chǔ)器 ROM。而常用的基于這兩種存儲(chǔ)設(shè)備的文件類型有: jffs2, yaffs, ramfs/tmpfs 等。在本設(shè)計(jì)中采用了 Jffs2 作為文件系統(tǒng) Jffs2 文件系統(tǒng) 介紹 Jffs2 文件系統(tǒng)主要應(yīng)用與 NOR 型的存儲(chǔ)設(shè)備中,它最主要的特點(diǎn)是可讀寫、支持?jǐn)?shù)據(jù)壓縮,掉電不易失, 在掉電時(shí)會(huì)自動(dòng)保存數(shù)據(jù), 為系統(tǒng)提供了一種安全的保護(hù)模式 。 Jffs2 的數(shù)據(jù)壓縮方式和 CRAMFS 一樣,其 數(shù)據(jù)可存放在全部的閃存區(qū)域中,數(shù)據(jù)的寫入和刪除分布在很大一片區(qū)域中以防止同樣的塊會(huì)被重復(fù)使用。 但是當(dāng)文件系統(tǒng)已經(jīng)接近飽和是, Jffs2 會(huì)因?yàn)槔占年P(guān)系,導(dǎo)致系統(tǒng)運(yùn)行速度的降低。 下面 列舉 文件系統(tǒng)中應(yīng)該包含的重要目錄: /bin 目錄 : 該目錄下存放所有用戶 (包括系統(tǒng)管理員和一般用戶 )都可以使用的基本命令。 /sbin 目錄 : 該目錄下存放系統(tǒng)命令 ,即只有管理員能夠適用的命令。 /dev 目錄 : 該目錄下存放的是設(shè)備文件 (字符設(shè)備和塊設(shè)備 ) 。 /etc 目錄 : 該目錄下存放各種配置文件。 /lib 目錄 : 該目錄下 存放共享庫(kù)和可加載模塊 (即驅(qū)動(dòng)程序 ) 。 /home 目錄 : 即用戶目錄 ,它是可選的 .在該目錄下有一個(gè)以用戶名命名的子目錄 ,用于存放用戶相關(guān)的配置文件。 /root 目錄 : 根用戶 (即 root)的目錄。 /usr 目錄 : 該目錄下存放的是可以在多個(gè)主機(jī)間共享 ,只讀的程序和數(shù)據(jù)。 /var 目錄 : 與 /usr 目錄相反 ,里面存放可變的數(shù)據(jù)。 /proc 目錄 : 這是一個(gè)空目錄 ,常作為 porc 文件系統(tǒng)的掛接點(diǎn)。 /mnt 目錄 : 用于臨時(shí)掛接某個(gè)文件系統(tǒng)的掛接點(diǎn) ,通常是空目錄。 /tmp 目錄 : 用于存放臨時(shí)文件 ,通常是空目錄 。 文件系統(tǒng)的制作 在 Boot loader 中,將文件系統(tǒng)映像燒錄到 flash 的某一個(gè)分區(qū)中,在啟動(dòng)的時(shí)候,將該分區(qū)作為根文件系統(tǒng)掛載。根文件系統(tǒng)是存放 Linux 系統(tǒng)所必須的配置文件、庫(kù)文件、腳本、設(shè)備文件 和其他特殊文件的地方 ,其中配置文件用來(lái)初始化和布局文件系統(tǒng),庫(kù)文件和腳本是從編程角度上來(lái)說(shuō)的,它們?yōu)槌绦虼a中的頭文件提供服務(wù),設(shè)備文件用來(lái)存放設(shè)備驅(qū)動(dòng)。這些文件可以 通過(guò)復(fù)制宿主機(jī)上交叉編譯器處得文件來(lái)制作根文件系統(tǒng)。 但是如果按照這種方法,制作文件系統(tǒng)的工作量會(huì)非常的巨大,還會(huì)出現(xiàn)錯(cuò)誤,所以在本設(shè)計(jì)中借助 了 BusyBox 這種工具來(lái)制作根文件系統(tǒng)。 北京聯(lián)合大學(xué) 畢業(yè)設(shè)計(jì) 20 BusyBox 被稱作是嵌入式領(lǐng)域中的一把瑞士軍刀,它是標(biāo)準(zhǔn) Linux 工具的一個(gè)單個(gè)可執(zhí)行實(shí)現(xiàn),它包含了一些簡(jiǎn)單的工具,還包含了一些更大、更復(fù)雜的工具,如grep, find 等,他就像是一個(gè)工具箱,壓縮了 Linux 許多工具和命令。 在設(shè)計(jì)過(guò)程中,本設(shè)計(jì)采用了 BusyBox 來(lái)為系統(tǒng)提過(guò) Linux 的命令集和必要的庫(kù)文件。 制作文件系統(tǒng)過(guò)程如下: 首先 進(jìn)入 BusyBox 的目錄下,將 BusyBox 默認(rèn)的體系結(jié)構(gòu)改為 ARM,默認(rèn)的交叉編譯器改為 armlinuxgcc: ARCH ?= arm CROSS_COMPILE ?= armlinux 然后 執(zhí)行 make defconfig 和 make menuconfig 這兩條語(yǔ)句,讓編譯器編程可以在開(kāi)發(fā)板中運(yùn)行的程序。 之后 讓 busybox 在指定的目錄下生成文件系統(tǒng): make CONFIG_PREFIX=/nfs_root/root_fs install 當(dāng)初步生成了 的文件系統(tǒng) 的框架 后,需要豐富其 系統(tǒng)中的 內(nèi)容以達(dá)到 Linux 系統(tǒng)要求的目錄結(jié)構(gòu)及其中的文件: 創(chuàng)建 dev 目錄 創(chuàng)建 dev 目錄并創(chuàng)建必要的設(shè)備節(jié) 點(diǎn),其中需要 console 和 null 設(shè)備節(jié)點(diǎn),故需創(chuàng)建它們。而它們的主次設(shè)備號(hào)以及其他屬性,在設(shè)計(jì)中參照可 Linux 中 dev 目錄下的 console 和 null。 創(chuàng)建 etc 目錄 回到文件系統(tǒng)的根目錄,創(chuàng)建 etc 目錄并在其中創(chuàng)建初始化腳本 inittab: 在 inittab 中輸入以下代碼 ::sysinit:/etc/ ::askfirst:/bin/sh ::shutdown:/bin/umount –a –r 在當(dāng)前的 etc 目錄下創(chuàng)建 目錄并在 目錄下創(chuàng)建 rcS: !/bin/sh echo ―Hello world!‖ mount –t sysfs none /sys mount –t proc none /proc mount –t tmpfs none /dev mount –t tmpfs none /var mount –t tmpfs none /tmp 北京聯(lián)合大學(xué) 畢業(yè)設(shè)計(jì) 21 echo ―/sbin/mdev‖ /proc/sys/kernel/hotplug mdev –s 創(chuàng)建 lib 目錄 在文件系統(tǒng)根目錄下創(chuàng)建 lib 目錄: mkdir /nfs_root/root_fs/lib 為文件系統(tǒng)添加必要的庫(kù),并為庫(kù)創(chuàng)建軟連接: cd /opt/ cp /nfs_root/root_fs/lib cd /nfs_root/root_fs/lib ln –s ln –s ln –s 在文件系統(tǒng)根目錄下補(bǔ)全其它 Linux 架構(gòu)規(guī)定的目錄: cd /nfs_root/root_fs/ mkdir home root var proc mnt tmp sys 此時(shí) 根文件系統(tǒng)所需要的必備文件已經(jīng)全部制作完成,因?yàn)樵O(shè)計(jì)需要在開(kāi)發(fā)板上執(zhí)行,所以還需要將該文件系統(tǒng)的鏡像文件燒寫到開(kāi)發(fā)板中。 到此為止,制作一個(gè) MP3 播放器的準(zhǔn)備 工作已經(jīng)全部完成,接下來(lái),就需要實(shí)現(xiàn) MP3 播放器的具體功能 了。 北京聯(lián)合大學(xué) 畢業(yè)設(shè)計(jì) 22 4 MP3 播放器的設(shè)計(jì)與實(shí)現(xiàn) 基于 ARM 的 MP3 播放器的系統(tǒng)結(jié)構(gòu)圖 如 圖 41 所示: 圖 41 播放器結(jié)構(gòu) 圖 其中,播放模塊實(shí)現(xiàn)了 MP3 播放音樂(lè)的功能,同步歌詞模塊實(shí)現(xiàn)了讓 MP3 在播放歌曲的同時(shí),顯示對(duì)應(yīng)的歌詞的功能。 USB 驅(qū)動(dòng)模塊實(shí)現(xiàn)了通過(guò) USB 接口向播放器中傳輸音樂(lè)歌曲。按鍵 控制 模塊實(shí)現(xiàn)了通過(guò)按鍵控制音樂(lè)的播放,停止,上一首,下一首的功能。 播放模塊的設(shè)計(jì) 聲卡驅(qū)動(dòng)的設(shè)計(jì) S3C2440 內(nèi)置 IIS 總線接口,可以直接 連接外部 8/16 位立體聲 CODEC,主要用于迷你碟機(jī)和可攜式應(yīng)用。 IIS 總線是串行數(shù)字音頻總線協(xié)議。它是一種面向多媒體的音頻總線,專用于音頻設(shè)備之間的數(shù)據(jù)傳輸,為數(shù)字立體聲提供序列的鏈接至標(biāo)準(zhǔn)編解碼器。 IIS 總線接口支持 IIS 總線數(shù)據(jù)格式和 MSBjustified 數(shù)據(jù)格式。該接口對(duì) FIFO 的訪問(wèn)采用了 DMA 模式取代了中斷,他可以在同一時(shí)間接受和發(fā)送數(shù)據(jù)。 IIS 總線有四線,包括: IISDI, IISDO, IISCLK, IISLRCK。 IISDI 是串行數(shù)據(jù)輸入總線, IISDO 是串行數(shù)據(jù)輸出總線。 IISCLK 是串行位時(shí)鐘總線,它為串行數(shù)據(jù)提供位時(shí)鐘。 IISSCLK=聲道數(shù) *采樣頻率 *采用位數(shù)。 IISLRCK是左右通道選擇總線,用于左右聲道的切換, IISLRCK 為高電平時(shí)表示正在傳輸?shù)氖亲舐暤罃?shù)據(jù),為低時(shí)傳輸?shù)氖怯衣暤罃?shù)據(jù),因此 IISLRCK 應(yīng)正好與采樣頻率相等。 由于 IIS 總線只處理音頻數(shù)據(jù),因此, UDA1341 還內(nèi)置了用于傳輸控制信號(hào)的L3 總線接口。 L3 接口相當(dāng)于混音器控制接口,可以控制輸入、輸出音頻信號(hào)的低音及音量大小等,從而來(lái)實(shí)現(xiàn)對(duì)聲音的控制。 MP3 播放器 USB 驅(qū)動(dòng)模塊 播放模塊 同步歌詞模塊 按鍵控制模塊 北京聯(lián)合大學(xué) 畢業(yè)設(shè)計(jì) 23 在 S3C2440 中, PCLK 和 MLLIN 可以提供 IIS 的 時(shí)鐘信號(hào),在本設(shè)計(jì)中選擇了PCLK 作為時(shí)鐘信號(hào),經(jīng)過(guò)分頻后可以得到 IISCLK, IISLRCK, CDCLK。 因?yàn)?Linux 操作系統(tǒng)沒(méi)有配備 S3C2440 的聲卡驅(qū)動(dòng)程序,所以 本次設(shè)計(jì)首先 需要完成聲卡驅(qū)動(dòng)的設(shè)計(jì)。在本設(shè)計(jì)中根據(jù) S3C2410—UDA1341 的聲卡驅(qū)動(dòng)模擬了一個(gè)S3C2440 的聲卡驅(qū)動(dòng)。 對(duì)聲卡進(jìn)行編程時(shí)首先要做的是打開(kāi)與之對(duì)應(yīng)的硬件設(shè)備,這是借助于 open 系統(tǒng)調(diào)用來(lái)完成的,并且一般情況下使用的是 /dev/dsp 文件。 Linux 允許應(yīng)用程序多次打開(kāi)或者關(guān)閉與聲卡對(duì)應(yīng)的設(shè)備文件,從而能夠很方便地進(jìn) 入放音狀態(tài),所以在編程時(shí)盡量的使用只讀或者只寫的方式打開(kāi)設(shè)備文件,因?yàn)檫@樣不僅能夠充分利用聲卡的硬件資源,而且還有利于驅(qū)動(dòng)程序的優(yōu)化。下面的代碼就是以只寫方式打開(kāi)聲卡進(jìn)行播放聲音的操作: int handle = open(―/dev/dsp‖, O_WRONLY)。 if (handle ==1) { perror(―open /dev/dsp‖)。 return 1。 } 在 Makefile 中增加 UDA1341: obj$(CONFIG_UDA1341) += 修改增加內(nèi)存映射,以使內(nèi)核知道該虛擬地址可用,而且對(duì)應(yīng)的物理地
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1