(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)
谢谢