树莓派编程:代码构建、GPIO 操作与浮点运算入门
代码构建流程
在开始编程时,我们逐步处理程序的各个部分。
- 常量和标签定义 :代码开头的部分用于定义常量和标签,这部分内容通常占据文件的前一页左右,最后以三个
asciz字符串定义结束。从注释和前文内容中,这些定义的功能应该会逐渐清晰。 - 程序启动 :程序从
main:开始。打开要映射的文件需要两个信息:要打开的设备名称地址和打开文件时要分配的属性。这些信息分别加载到R0和R1中。/dev/gpiomem字符串的地址由devicefile中指定的地址指针提供。调用 Linux 内核的open函数后,返回时R0会包含文件描述符,若为负数则表示出现错误,文件无法打开,此时会显示相应的错误信息并终止程序。若一切正常,程序流程会在moveon1处继续,将文件描述符的副本保存在R4中供程序使用,并在R8中备份。同时,还需保存用于访问 GPIO 的外设地址(0x3F200000)并将其副本保存在R9中,然后将这两个值压入栈顶。 -
内存映射(mmap) :
超级会员免费看
订阅专栏 解锁全文

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



