电子综合课程设计报告。
基于嵌入式arm的*****器的设计。
专业班级:设计者:
指导教师:设计时间:
一、 设计题目:基于arm的*****器的设计。
二、 课程设计教学目的:
了解并掌握系统电路的一般设计方法,具备初步的独立设计能力;
2、掌握unix/linux系统原理;
3、提高综合运用所学的理论知识独立分析和解决问题的能力;
4、进一步掌握arm技术的开发流程。
三、设计要求。
1、首先在pc机上实现*****器的基本功能,包括**一首或者几首***格式的歌曲,并实现快退、快进功能。
2、在arm开发板上调试并实现上述功能,完成课程设计。
四、基本原理:
1、嵌入式系统基本介绍:
随着近20年来微电子技术、计算机技术和移动通信技术的迅速发展以及网络技术的广泛应用,实际情况已经产生了根本性的变化。例如在70年代末定义的微型计算机演变出来的个人计算机pc其处理速度已远远超过了当年对大、中、小型计算机的定义。随着计算机技术对其它行业的广泛渗透和与其它行业应用技术的相互结合,以应用为中心的分类方法变得似乎更加切合实际发展;按计算机的嵌入式应用和非嵌入式应用将其分为通用计算机和嵌入式计算机。
而通用计算机具有一般计算机的基本标准形态,通过装配不同的应用软件,以基本雷同的面目出现并应用在社会的各个方面,其典型产品为pc;而非通用计算机的计算机-嵌入式计算机,则是非通用计算机形态的计算机应用,它是以作为嵌入式系统的核心部件的形式隐藏在各种装置、设备、产品和系统中。因此嵌入式计算机是计算机技术发展中的一种计算机存在的形式,是从计算机技术的发展中分离出来的。
2、linux操作系统简介:
linux是一种自由和开放源码的类unix操作系统。目前存在着许多不同的linux,但它们都使用了linux内核。linux可安装在各种计算机硬件设备中,从手机、平板电脑、路由器和**游戏控制台,到台式计算机、大型机和超级计算机。
linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是linux操作系统。严格来讲,linux这个词本身只表示linux内核,但实际上人们已经习惯了用linux来形容整个基于linux内核,并且使用gnu 工程各种工具和数据库的操作系统。
3、***音频格式:
***是mpeg-1 audio layer 3的简称,是当今比较流行的一种数字音频编码和有损压缩格式。***技术的应该可以用来大幅度的降低音频文件存储所需要的空间。它丢掉脉冲编码调制(pcm)音频数据中对人类听觉不重要得数据,从而达到了较高的压缩比(高达12:
1-10:1)。简单地说,***在编码时先对音频文件进行频谱分析,然后用过滤器滤掉噪音电平,接着通过量化的方式将剩下的每一位打散排列,最后形成有较高压缩比的***文件,并使压缩后的文件在回放时也能够达到比较接近原音源的效果。
五、方案选择:
1、嵌入式系统开发方式的选择:
如今,嵌入式系统的开发有两种模式,其一是基于arm芯片的,类似于单片机开发的一种。
模式,即直接在硬件上进行编程,这显然是不合理的,这样难以有效的开发出能够处理复杂问题的嵌入式应用系统。其二就是基于嵌入式操作系统的开发模式。在嵌入式系统的开发过程中,一般采取交叉平台的开发方法。
即在通用pc上编程,然后通过交叉编译和链接,将源程序编成能够在目标平台上运行的二进制**格式映像。最后将映像下裁到目标平台上的特定位置,由目标板上启动**(bootloader)执行这段二行制**,从而运行起嵌入式系统。而当今嵌入式的开发几乎都采用第二种开发模式。
因此,我们的课程设计自然是采用第二种开发模式。
2、开发流程的确定:
我们完全按照企业中嵌入式的开发流程,首先在pc机上构建linux操作系统开发环境。其次在开发板上构建linux编译、执行环境。然后再pc机上写程序,并进行交叉编译,在pc机上执行程序。
最后把程序**到开发板,完成整个设计。整个开发流程图如下:
六、pc机上构建linux操作系统开发平台。
1、安装linux虚拟机oracle vm virtualbox:
本次课程设计用的是linux debian版本,2.6.26-2-686的内核。
首先运行虚拟机安装程序,安装完成后,新建一个linux操作系统,输入用户名和密码进入操作系统就可以进行程序的编写了,至此第一步就完成了。
2、熟悉linux命令行操作及常用命令:
与文件相关命令:
pwd:查看当前目录。
ls :查看当前目录下包含的子目录。
ls –l 文件名:查看指定文件的详细信息。
ls –a:查看包括隐藏文件在内的所有文件的信息。
cd:切换目录。
cd /:切换到根目录。
cd …:切换到上一级目录。
mkdir 文件名:新建文件夹。
rm 文件名:删除文件。
rm –r 文件名:删除文件(无法恢复)
touch 文件名:新建文件。
cat 文件名:查看文件内容。
echo “内容”>>文件名:把内容写到文件的末尾,不覆盖原来的内容。
cat 文件1 >>文件2:把文件1的内容复制到文件2
程序编写过程中常用命令:
vim “文件名”:打开类似于windows记事本的编辑器,并命名为“文件名”,打开编译器后,默认为命令模式,不能进行输入。按“i”键,进入输入模式,此时可以进行**编辑。
按“esc”键,回到命令模式。按“:”键进入末行模式。
w 文件名:在vim的末行模式下,保存文件为指定文件名。
q :在vim 的末行模式下退出vim
wq:在vim的末行模式下保存并退出文件。
dd:删除整行。
ndd :删除n行。
dw :删除单词。
ndw :删除n个单词。
d$:删除从光标处到结尾的内容。
y:复制。nyy:复制n行。
p:粘贴。或/ 要查找的内容:查找指定内容。
s/ /g:进入末行模式后全部替换查找到的内容。
u:撤销此次动作。
ctrl+r:恢复到上一个状态。
set nu:在末行模式下打开行号。
set nonu:在末行模式下撤销行号。
gcc 文件名:编译指定文件,输出可执行文件。
gcc 文件名1 –o文件名2:编译指定文件,输出可执行文件“文件名2”
/文件名:执行指定文件。
vim makefile:编写makefile,集体编译文件。
写法:输出可执行文件1:源文件1
gcc 源文件1 –o 可执行文件1
输出可执行文件2:源文件2
gcc 源文件2 –o 可执行文件2
make:执行makefile
man 2 函数名:查看函数使用手册。
安装声卡驱动。
第一步:cd /lib/modules/2.6.26-2-686/kernel/sound/core/oss/
第二步:sudo modprobe snd-pcm-oss
到此,声卡驱动安装完成。
七、编写源程序。
1、首先实现**w**格式音频文件,程序流程图如下:
源程序如下:
#include<>
#include
#include
#include <>
#include<>
#include
#include
#include <>
#include <>
int kbhit(void)
struct termios oldt, newt;
int ch;
int oldf;
tcgetattr(stdin_fileno, &oldt);
newt = oldt;
&= icanon | echo);
tcsetattr(stdin_fileno, tcsanow, &newt);
oldf = fcntl(stdin_fileno, f_getfl, 0);
fcntl(stdin_fileno, f_setfl, oldf | o_nonblock);
ch = getchar();
tcsetattr(stdin_fileno, tcsanow, &oldt);
fcntl(stdin_fileno, f_setfl, oldf);
if(ch !=eof)
return 0;
int main(int argc,char **ar**)
char *buf=malloc(1024);
int fd=open(ar**[1],o_rdonly|o_creat|o_append,0666);
int fd1=open(ar**[2],o_wronly|o_creat|o_append,0666);
printf("%d,%d",fd,fd1);
int du=1;
while(du>0)
du=read(fd,buf,50);
int fmt=afmt_s16_le,channels=2,speed=44100;
ioctl(fd1,sndctl_dsp_setfmt,&fmt);
ioctl(fd1,sndctl_dsp_channels,&channels);
ioctl(fd1,sndctl_dsp_speed,&speed);
int xie=write(fd1,buf,du);
printf("%d %d ",du,xie);
02课程设计格式
广东工业大学华立学院。课程设计 课程名称。题目名称。学生学部。专业班级。学号。学生姓名。指导教师。2012 年 12 月 15 日。目录。1 设计内容 1 2 算法思想描述 5 3 算法及程序实现 15 4 算法测试及结果 15 5 总结 15 参考文献 15 在叶轮机械领域,对一个实际的叶盘转子,...
2019课程设计 程老师
civil iation university of china 航空发动机强度与振动。课程设计报告。姓名。学号。班级。专业。指导教师。2014年11月。题目及要求。题目基于ansys的叶片 轮盘强度与振动分析。1 模型。图1 叶片 轮盘模型如右图所示,相关参数如下 等厚度轮盘,厚度为0.025m,...
2019课程设计
面向对象 课程设计2011 1 要求 1 分小组完成课程设计,每小组2人,每个小组一个小组长。2 每个小组独立完成课程设计。3 采纳面向对象方法进行分析 设计 编程,用uml建模语言 在rational rose或visio等可视化建模工具进行建模。2 提交内容 1 每个阶段结束要提交相应的模型 文...