(85) 驱动写多了,会发现,首先就是硬件的初始化,配置硬件。

(86)查看源代码组织:

(87) 编译过程不变:

(88) 运行同以前的步骤 : 加电截断自动引导, loadb , send kermit , go 40008000:

++

++

(89)随后分析与学习与讯为板子的差异,并进行测试。 接着看下,蜂鸣器播放音乐 :

++ 只要单个音符能发音,只要不断改变音符,就可以实现歌曲的播放。把上面音符数组里的元素,按歌曲音调,连续播放:
++

++

++

++

(90)接着开始 在 ubantu 上编译和查看代码。先学习一个 arm 指令 mcr:

(91)接着开始学习讯为 PWM 的代码,已编译通过,先显示其源代码文件结构:

++

++所以完全同 远见板子:

++

++接着介绍 cpu 文件夹里的汇编代码文件 start.s :

++ 再来看一个 uart 源文件。dsi 系列看不懂,略过:

++ 接着看头文件,这里先把灯的参数挪过来,看是否可以声音和灯联动 :

++

++

++ 继续介绍库函数:

++ 介绍 main() 函数,先简单版:

++ 接着学习 main() 歌曲复杂版以及 makefile 与 lds 文件:

经过后来的实验,对于音乐数组 yinyue[ ][ ] 的取值是合理的。这里涉及音乐,不深究。源代码里这么取值 a 、 b 是合理的。
(92)接着学习 makefile 文件,其中的 gcc 使用了些新的选项,先来学习,再注释 makefile 文件:

++

++

++

++这里从网上搜到了一个解释:

++

++

++

++

++

++以上关于 gcc 编译选项的解释及 makefile 规则,对理解 makefile 文件很重要:

++学习 lds 文件:

++把 bin 文件传送到 win7 的 CRT 可以测试了。同时也测试简单版本的 beep :

(93)经过编译,对 makefile 又多了些认识: makefile 在第一次编译后,生成对应所有源码文件点 .S 、 .s 、 .c 文件的 .o 文件。修改了哪些源文件,就可以只把对应的 .o 文件删除即可。 make 程序,会识别出来这个差异,从而只重新编译要更新的源文件,这样可以加快编译速度。因为对于已存在的 .o 文件,make 是认为它是可用的,就不会编译它了,只进行最后的链接。
(94)
谢谢

被折叠的 条评论
为什么被折叠?



