(原创) 如何使用硬体 μCOS-II 的方式播放SD卡内wav档音乐.pdf

(原创) 如何使用硬体 μCOS-II 的方式播放SD卡内wav档音乐.pdf

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(原创) 如何使用硬体 μCOS-II 的方式播放SD卡内wav档音乐

(原創) 如何使用硬體 + μC/OS-II 的方式『播放SD 卡內wav 檔音樂』? (IC Design) (DE2) (Quartus II) (Nios II) (μC/OS-II) Abstract 之前已經討論過使用硬體的方式『播放SD 卡內wav 檔音樂』,本文將討論硬體 + μC/OS-II 這種軟硬體合作的方式播放SD 卡內wav 檔音樂。 使用環境 : Quartus II 6.0 + Nios II 6.0 Introduction μC/OS-II 為一嵌入式real time OS,本文希望能透過OS 以軟體的方式控制硬體,播放SD 卡內wav 檔音樂。 Solution Step 1: 下載DE2_System_v1.5 從友晶科技的/downloads/cd-rom/de2/下載 DE2_System_v1.5.zip Step 2: 建立DE2_SD_Card_Audio_MicroCOS2 目錄 在c:\DE2\下建立[DE2_SD_Card_Audio_MicroCOS2] 目錄,將下載的 DE2_System_v1.5 解壓縮到c:\,將 c:\DE2_System_v1.5\DE2_demonstrations\DE2_SD_Card_Audio\下所有檔案複製到 c:\DE2\DE2_SD_Card_Audio_MicroCOS2 下 Step 3: 將硬體燒進DE2 開啟Quartus II 後,載入 c:\DE2\DE2_SD_Card_Audio_MicroCOS2\DE2_SD_Card_Audio.qpf,並開啟 Programmer,將c:\DE2\DE2_SD_Card_Audio_MicroCOS2\DE2_SD_Card_Audio.sof 燒進DE2 Step 4: 將舊的workspace 和project 刪除 將c:\DE2\DE2_SD_Card_Audio_MicroCOS2\的三個目錄刪除 [.metadata] [hello_led_0] [hello_led_0_syslib] .metadata 紀錄舊有workspace 資訊,hello_led_0 和hello_led_0_syslib 則為原來 DE2_SD_Card_Audio 所建立的專案目錄 Step 5: 切換workspace 開啟Nios II 後,切換workspace 到c:\DE2\DE2_SD_Card_Audio_MicroCOS2,此時沒 有任何專案,因為已經被刪除了。 Step 6: 建立一個新的Nios II C/C++ Application Step 7: 選擇Hello MicroC/OS-II 這個project template,,並選取正確路徑的SOPC Builder System。 Step 8: 建立一個新的System Library Step 9: 修改hello_ucosii.c 將DE2_System_v1.5.zip 中,純硬體的 c:\DE2_System_v1.5\DE2_demonstrations\DE2_SD_Card_Audio\hello_led_0\hell o_led.c 內 #include basic_io.h #include LCD.h #include SD_Card.h int main(void) { UINT16 i=0,Tmp1=0,Tmp2=0; UINT32 j=720; BYTE Buffer[512]={0}; while(SD_card_init()) usleep(500000); LCD_Test(); while(1) { SD_read_lba(Buffer,j,1); while(i512) { if(!IORD(AUDIO_0_BASE,0)) { Tmp1=(Buffer[i+1]8)|Buffer[i]; IOWR(AUDIO_0_BASE,0,Tmp1); i+=2; } } if(j%64==0) { Tmp2=Tmp1*Tmp1; IOWR(LED_RED_BASE,0,Tmp2); IOWR(LED_GRE

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档