Questions tagged «assembler»

5
编写ARM汇编代码
拿到Raspberry Pi之后,我决定想学习如何编写ARM汇编代码。我的问题是,我需要什么入门?我假设已经安装了编译器,但我不知道它是什么(也许是gcc?)。任何帮助表示赞赏!
20 arm  assembler 

1
Raspberry Pi是学生学习汇编程序的良好教学工具吗?
当我参加组装课程时,我们使用了NIOS II Altera开发板,该开发板具有显示屏,一些LED灯和可编程按钮。较有用的练习之一是使用LED和按钮编写一个二进制计算器。所以,这是我的问题: 是否可以将类似的东西(或很好的替代品)插入树莓派? 使用Raspberry Pi是否有我没有想到的明显缺点(也许ARM汇编不是学习的好方法)? 指令集手册可能还会允许我们做些其他事情,从而给Pi 带来一些视觉效果吗?

1
锁定(原子)寄存器读/写
我正在使用GPIO的直接控制进行编码,为此有一些不错的资源,例如http://elinux.org/RPi_Low-level_peripherals#GPIO_hardware_hacking;该过程涉及open(“ / dev / mem”),然后mmap操作有效地将所需的物理地址映射到您的虚拟地址空间中。然后,阅读本http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf的第6节,以了解有关如何控制I / O的信息。 要更改引脚的功能(输入或输出,或各种特殊功能),请修改GPFSELx I / O寄存器中的这3位字段(000 =输入,001 =输出对象实例)。这些修改操作被编译为具有普通加载和存储的操作(例如,将GPIO0更改为输入:*(regptr)&=〜7;编译为类似 ldr r2, [r3, #0] ; r = *ptr (load r2 from I/O register) bic r2, r2, #7 ; r2 &= ~7 str r2, [r3, #0] ; *ptr = r2 (store r2 to I/O register) 问题是这样的:如果在加载和存储之间发生中断,并且另一个进程或ISR修改了相同的I / O寄存器,则存储操作(基于读入r2的陈旧)将还原该其他操作的效果。因此,更改这些I …
8 gpio  assembler 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.