树莓派编程:代码构建、GPIO 操作与浮点运算解析
代码构建流程
代码构建工作需逐节推进。最初的代码块用于定义常量和标签,此部分约占文件首页,以三个 asciz 字符串定义结束。程序自 main: 起始,打开待映射文件需两项信息:设备名地址和文件打开属性,分别加载到 R0 和 R1 寄存器。 'devgpiomem' 字符串地址由 devicefile 中的地址指针提供,调用 Linux 内核的 open 函数,返回时 R0 含文件描述符或负数(表示错误)。若出错,显示错误信息并终止程序。
若一切正常,程序在 moveon1 处继续,将文件描述符副本存于 R4 供程序使用,备份存于 R8 ,同时保存 GPIO 外设地址( 0x3F200000 )于 R9 ,并将这两项压入栈顶。
mmap 函数用于映射虚拟内存,需六个参数:
1. R0 :设备映射地址,建议用空值或零让系统选择。
2. R1 :映射所需内存量,一页(4096 字节)即可。
3. R2 :映射内存的保护设置,需与原打开操作一致,具备读写和同步能力。
4. R3
超级会员免费看
订阅专栏 解锁全文

23

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



