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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于arm的mp3播放器設(shè)計(jì)-閱讀頁(yè)

2024-12-23 19:39本頁(yè)面
  

【正文】 define S3C2440_CLKDIVN_HDIVN_2 (11) define S3C2440_CLKDIVN_HDIVN_4_8 (21) define S3C2440_CLKDIVN_HDIVN_3_6 (31) define S3C2440_CAMDIVN_CAMCLK_MASK (0xf0) define S3C2440_CAMDIVN_CAMCLK_SEL (14) define S3C2440_CAMDIVN_HCLK3_HALF (18) define S3C2440_CAMDIVN_HCLK4_HALF (19) define S3C2440_CAMDIVN_DVSEN (112) 在函數(shù) static ulong get_PLLCLK(int pllreg)修改: return((CONFIG_SYS_CLK_FREQ * m * 2) / (p s))。 int hdiv = 1。 camdiv = clk_powerCAMDIVN。 S3C2440_CLKDIVN_HDIVN_MASK){ case S3C2440_CLKDIVN_HDIVN_1: hdiv = 1。 北京聯(lián)合大學(xué) 畢業(yè)設(shè)計(jì) 15 case S3C2440_CLKDIVN_HDIVN_2: hdiv = 2。 case S3C2440_CLKDIVN_HDIVN_4_8: hdiv = (camdiv amp。 break。 S3C2440_CAMDIVN_HCLK3_HALF) ? 6 : 3。 } return get_FCLK() / hdiv。 int hdiv = 1。 camdiv = clk_powerCAMDIVN。 S3C2440_CLKDIVN_HDIVN_MASK){ case S3C2440_CLKDIVN_HDIVN_1: hdiv = 1。 case S3C2440_CLKDIVN_HDIVN_2: hdiv = 2。 case S3C2440_CLKDIVN_HDIVN_4_8: hdiv = (camdiv amp。 break。 S3C2440_CAMDIVN_HCLK3_HALF) ? 6 : 3。 } return get_FCLK() / hdiv / ((clkdiv amp。 F、 添加 NANDFLASH 驅(qū)動(dòng),來(lái)啟用 nand 命令 在 vim include/configs/ 北京聯(lián)合大學(xué) 畢業(yè)設(shè)計(jì) 16 CFG_CMD_NAND | \ CFG_CMD_PING | \ 增加如下 Nand相關(guān)配置項(xiàng): define CFG_NAND_BASE 0 define CFG_MAX_NAND_DEVICE 1 define NAND_MAX_CHIPS 1 以下這兩行代碼是為了支持 uboot可以傳參數(shù)給 Linux內(nèi)核,例如告訴 Linux內(nèi)核 ‖root=/dev/mtdblock2‖) define CONFIG_SETUP_MEMORY_TAGS 1 define CONFIG_CMDLINE_TAG 1 G、 修改 NANDFLASH 相關(guān)寄存器:定義 2440 的 nand flash 控制器寄存器的數(shù)據(jù)結(jié)構(gòu),以供 board_nand_init 函數(shù)使用 /* NAND FLASH (see S3C2440 manual) */ typedef struct { S3C24X0_REG32 NFCONF。 S3C24X0_REG32 NFCMD。 S3C24X0_REG32 NFDATA。 S3C24X0_REG32 NFMECCD1。 S3C24X0_REG32 NFSTAT。 S3C24X0_REG32 NFESTAT1。 S3C24X0_REG32 NFMECC0。 S3C24X0_REG32 NFSBLK。 } /*__attribute__((__packed__))*/ S3C2440_NAND。 } I、 將 加入到目錄 cpu/arm920t/s3c24x0/下 ,為上層提供 nandflash驅(qū)動(dòng)接口函數(shù) ,讓 uboot 使用 J、 修改 Makefile 編譯進(jìn) image 里 K、 執(zhí)行 make 編譯 uboot,生成 執(zhí)行到這里時(shí),說(shuō)明 UBOOT 已經(jīng)加載完成,只需要將生成的 燒寫(xiě)到開(kāi)發(fā)板中的 0x000000 地址處,就可以在啟動(dòng)時(shí)自動(dòng)加載這段程序了。一般的嵌入式系統(tǒng)均采用壓縮內(nèi)核的方式,對(duì) ARM 系列處理器來(lái)說(shuō) zImage 的入口程序即為 arch/arm/boot/pressed/。 Linux 內(nèi)核的移植 在 linux 內(nèi)核部分,也要根據(jù)設(shè)計(jì)需要進(jìn)行相應(yīng)的修改 a) 修改頂層 Makefile,用來(lái)指定體系結(jié)構(gòu)和交叉編譯器 ARCH ?= arm CROSS_COMPILE ?= armlinux b) 修改晶振頻率 s3c24xx_init_clocks(16934400) 改為s3c24xx_init_clocks(12021000) 用 make S3C2410_defconfig 先配置系統(tǒng)默認(rèn)的 2410 配置, linux 內(nèi)核具備一個(gè)現(xiàn)代操作系統(tǒng)的所有功能,并能對(duì)絕大多數(shù)硬件提供支持,但是對(duì)于每個(gè)設(shè)計(jì)來(lái)說(shuō),并不是所有的功能都會(huì)被用到,所以要在配置內(nèi)核時(shí),對(duì)所需要的功能進(jìn)行相應(yīng)的配置。 在 區(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)信息中。 .name 為分區(qū)名; .size 為分區(qū)大??; .offset 為分區(qū)起始地址相對(duì)于 0 的偏移。 編譯內(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)類(lèi)型的時(shí)候,就需要根據(jù)存儲(chǔ)設(shè)備的硬件特性和系統(tǒng)的需求進(jìn)行相應(yīng)的選擇。而常用的基于這兩種存儲(chǔ)設(shè)備的文件類(lèi)型有: jffs2, yaffs, ramfs/tmpfs 等。 Jffs2 的數(shù)據(jù)壓縮方式和 CRAMFS 一樣,其 數(shù)據(jù)可存放在全部的閃存區(qū)域中,數(shù)據(jù)的寫(xiě)入和刪除分布在很大一片區(qū)域中以防止同樣的塊會(huì)被重復(fù)使用。 下面 列舉 文件系統(tǒng)中應(yīng)該包含的重要目錄: /bin 目錄 : 該目錄下存放所有用戶(hù) (包括系統(tǒng)管理員和一般用戶(hù) )都可以使用的基本命令。 /dev 目錄 : 該目錄下存放的是設(shè)備文件 (字符設(shè)備和塊設(shè)備 ) 。 /lib 目錄 : 該目錄下 存放共享庫(kù)和可加載模塊 (即驅(qū)動(dòng)程序 ) 。 /root 目錄 : 根用戶(hù) (即 root)的目錄。 /var 目錄 : 與 /usr 目錄相反 ,里面存放可變的數(shù)據(jù)。 /mnt 目錄 : 用于臨時(shí)掛接某個(gè)文件系統(tǒng)的掛接點(diǎn) ,通常是空目錄。 文件系統(tǒng)的制作 在 Boot loader 中,將文件系統(tǒng)映像燒錄到 flash 的某一個(gè)分區(qū)中,在啟動(dòng)的時(shí)候,將該分區(qū)作為根文件系統(tǒng)掛載。這些文件可以 通過(guò)復(fù)制宿主機(jī)上交叉編譯器處得文件來(lái)制作根文件系統(tǒng)。 北京聯(lián)合大學(xué) 畢業(yè)設(shè)計(jì) 20 BusyBox 被稱(chēng)作是嵌入式領(lǐng)域中的一把瑞士軍刀,它是標(biāo)準(zhǔn) Linux 工具的一個(gè)單個(gè)可執(zhí)行實(shí)現(xiàn),它包含了一些簡(jiǎn)單的工具,還包含了一些更大、更復(fù)雜的工具,如grep, find 等,他就像是一個(gè)工具箱,壓縮了 Linux 許多工具和命令。 制作文件系統(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)行的程序。而它們的主次設(shè)備號(hào)以及其他屬性,在設(shè)計(jì)中參照可 Linux 中 dev 目錄下的 console 和 null。 到此為止,制作一個(gè) MP3 播放器的準(zhǔn)備 工作已經(jīng)全部完成,接下來(lái),就需要實(shí)現(xiàn) MP3 播放器的具體功能 了。 USB 驅(qū)動(dòng)模塊實(shí)現(xiàn)了通過(guò) USB 接口向播放器中傳輸音樂(lè)歌曲。 播放模塊的設(shè)計(jì) 聲卡驅(qū)動(dòng)的設(shè)計(jì) S3C2440 內(nèi)置 IIS 總線(xiàn)接口,可以直接 連接外部 8/16 位立體聲 CODEC,主要用于迷你碟機(jī)和可攜式應(yīng)用。它是一種面向多媒體的音頻總線(xiàn),專(zhuān)用于音頻設(shè)備之間的數(shù)據(jù)傳輸,為數(shù)字立體聲提供序列的鏈接至標(biāo)準(zhǔn)編解碼器。該接口對(duì) FIFO 的訪問(wèn)采用了 DMA 模式取代了中斷,他可以在同一時(shí)間接受和發(fā)送數(shù)據(jù)。 IISDI 是串行數(shù)據(jù)輸入總線(xiàn), IISDO 是串行數(shù)據(jù)輸出總線(xiàn)。 IISSCLK=聲道數(shù) *采樣頻率 *采用位數(shù)。 由于 IIS 總線(xiàn)只處理音頻數(shù)據(jù),因此, UDA1341 還內(nèi)置了用于傳輸控制信號(hào)的L3 總線(xiàn)接口。 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。在本設(shè)計(jì)中根據(jù) S3C2410—UDA1341 的聲卡驅(qū)動(dòng)模擬了一個(gè)S3C2440 的聲卡驅(qū)動(dòng)。 Linux 允許應(yīng)用程序多次打開(kāi)或者關(guān)閉與聲卡對(duì)應(yīng)的設(shè)備文件,從而能夠很方便地進(jìn) 入放音狀態(tài),所以在編程時(shí)盡量的使用只讀或者只寫(xiě)的方式打開(kāi)設(shè)備文件,因?yàn)檫@樣不僅能夠充分利用聲卡的硬件資源,而且還有利于驅(qū)動(dòng)程序的優(yōu)化。 if (handle ==1) { perror(―open /dev/dsp‖)。 } 在 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