(74) 因为课本里用的远见的板子。但后来购买的是讯为的板子。多少还有些代码编写上的差异。随着课程做好笔记后,先照着远见做笔记,随后再对照讯为的课程修改代码的差异之处。最后编译代码,输入讯为板子进行测试。
++
++ 查看说明书的寄存器部分:
++ 目录所在:
++ 以下给出 LED 灯控制的汇编代码以及 GNU 汇编的语法解释:
++ 配合汇编源代码的 makefile 文件的书写内容:
++ 对于上图里 链接 ld 时候出现的 -N 选项,进行补充:
以及:
以及:
以及:
++ 配套的 map 文件:
++ 开始编译
++ 把二进制 bin 文件复制到 win 7 系统:
++ 加电电路板,及时按键,开启 SRT:
++
++
++
至此,汇编版本的 LED 代码用完毕。谢谢老师的讲解。
(75)接着开始 LED 灯的 C 语言代码的学习:
我们要控制的灯的引脚,对应的寄存器是 GPX1[0]
++
++
++ init 函数:
++ 灯的亮与暗 :
++ main 函数:
++ 以上介绍完了 main.c 里的所有函数,以下给出其全貌:
这里修改了 main() 函数,重新编译了下,看来是正确的:
++ 接着介绍随源码的 make 编译需要的知识:
接着补充下 lds 文件里宏定义 ENTRY 的作用,用来确定可执行文件的执行入口,这个数据是要填写进可执行文件的文件头结构里的,供操作系统加载程序时候使用。
++ 补充 make 命令的使用 :
至此已经理解了源文件,可以让 linux 操作系统编译源代码了:
++
++板子加电:
++
++ 寻找源代码:
++
++ go 启动代码的执行:
(76)接着在充分理解老师对 远见板子的讲解后,学习讯为板子的测试与使用。先查询讯为的两个原理图 :
++ 接着介绍俩版本的代码上的差异,也是多学习一些:
++
++ map.lds 是相同的。
++
++
++
++
(77)
谢谢