arm

Help with GBA ARM assembly program

I tried to modify this ARM assembly program (see bottom of the page) to use subroutines. It should display a red screen on the GBA (and compiling the example program it actually does, so it's not a toolchain use problem), but, when I run it, the screen goes black instead. I'm using devkitARM 30 .arm .text .global main main: mov r0, ...

VFP Unit Matrix Multiply problem on the iPhone

Hi. I'm trying to write a Matrix3x3 multiply using the Vector Floating Point on the iPhone, however i'm encountering some problems. This is my first attempt at writing any ARM assembly, so it could be a faily simple solution that i'm not seeing. I've currently got a small application running using a maths library that i've written. I'm ...

Getting the PC value in ARM assembly

I have a Windows Mobile 6 ARMV4I project where I would like to get the value of the program counter. The function is declared like this: extern "C" unsigned __int32 GetPC(); My assembly code looks like this: GetPC FUNCTION EXPORT GetPC ldr r0, [r15] ; load the PC value in to r0 mov pc, lr ; return the value of r0...

ARM Assembly - Converting Endianness

Hello people! This is currently a homework project that me and my teammate are stuck on. We haven't been given much of an introduction into Assembly, and this is supposed to be our first homework exercise. The task is to create a program that converts 0xAABBCCDD into 0xDDCCBBAA. I'm not looking for an answer, as that would defeat the ...

Does mprotect flush the instruction cache on ARM Linux?

I am writing a JIT on ARM Linux that executes an instruction set that contains self-modifying code. The instruction set does not have any cache flush instructions (similar to x86 in that respect). If I write out some code to a page and then call mprotect on that page, is that sufficient to invalidate the instruction cache? Or do I also ...

C to ARM ASM converter

Hello, Is there any converter to convert a C function into ARM (v6) ASM code or I need to do it manually ? I am trying to gain the performance of a C function on Iphone. ...

Explicitly accessing banked registers on ARM

According to the ARM manual, it should be possible to access the banked registers for a specific CPU mode as, for instance, "r13_svc". When I try to do this gcc yells at me with the following error: immediate expression requires a # prefix -- `mov r2,sp_svc' What's wrong? Update. The following text from the ARM Architecture Reference...

function argument in register

Is there a way to disable passing function arguments in registers using gcc 3.3.1 for ARM? ...

sudo port install arm-elf-gcc3 fails with "No defined site for tag: gcc…"

Am trying to get the ARM plugin for Eclipse (http://sourceforge.net/projects/gnuarmeclipse/) going on iMac i7, OS 10.6.3, Xcode 3.2.2 (don't want to upgrade during my project). The plugin needs (IIRC) arm-elf-gcc3, which needs darwinports for "easy" install. Of course, probably due to leftovers when I moved from old MacBook to iMac, Darw...

advantages of atmega32

what are the advantages of using atmega32 than other microcontrollers ? is it better than pic and arm,8051 ? ...

user-kernel address division

In ARM linux, the user-kernel virtual address range is divided in the ratio 3:1. But in MIPS linux, this is usually 2:2 Does someone know what motivates this design difference ? I have a faint idea that this has something to do with the fact that in MIPS, the TLB refill is managed in s/w and the kernel TLB entries are kind of hard...

ARM Assembly - Branch Instruction

I'm looking at some assembly for the start up of some firmware that runs on an ARM processor. The following exception vector table is defined: LDR pc, =resetHandler LDR pc, Undefined_Addr LDR pc, SWI_Addr LDR pc, Prefetch_Addr LDR pc, Abort_Addr B . LDR pc, =irqHandler LDR ...

arm-apple-darwin9-g++ Bus error problem

I want to create a mobilesubstrate plugin for iPhone OS 3.2 or I tried to setup toolchain on the iPad device. I have installed the iphone-gcc_4.2-20090304-1-9_iphoneos-arm package and all the relevant packages from Cydia, but when it comes to compiling the simplest source file shows the following error: arm-apple-darwin9-g++ -I /var/to...

The Cleanest Reset for an ARM Processor

Lately, I've been cleaning up some some C code that runs on an ARM7 controller. In some situations (upgrade, fatal error, etc...) the program will perform a reset. Presently it just jumps to 0 and assumes that the start-up code will reinitialize everything correctly. It got me to thinking about what would be the best procedure a la "Leav...

Boot from flash-rom with qemu-system-arm

Is it possible to emulate boot from flash memory using qemu-system-arm? (Using Integrator/CP motherboard) I'm able to boot using qemu's -kernel option, but if I try using an option such as -pflash, qemu generates an error telling me that I must use the -kernel option. Is there any way around this? ...

Newbie question: How to create and use static libraries in WINARM?

I'm using WINARM Version 20060606 located here: http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/#winarm I want to create a simple static library as follows: ---- plus.h ------------ int plus(int x, int y); ---- plus.c ------------ #include "plus.h" int plus(int x, int y) { return (x + y); } Then I want to sta...

Is there a good reference for ARM Neon intrinsics?

The ARM reference manual doesn't go into too much detail into the individual instructions ( http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0348b/BABIIBBG.html ). Is there something that's a little more detailed? ...

When should carry flag be set in assembly language.

Hi everyone: I'm puzzled by this problem when writting an ARM assembly simulator in C. I've found some similar questions in the forum, but none of them explain how to set the carry flag just using the relationship between two operands and the result. Any reply is appreciated. Thanks in advance. Regard. ...

ARM cortex: mutex using bit banding

Given that, on the ARM Cortex M3, I can: atomically read a single bit atomically set a single bit atomically clear a single bit How can I combine these for a mutex style set of operations: try lock take lock release lock It seems that try_lock or take_lock would require two operations that would not be atomic. Do I need more control...

Returning structs in registers - ARM ABI in GCC

Hi, In the ARM ABI documentation I come across functions defined like: __value_in_regs struct bar foo(int a, int b) { ... } but GCC(4.3.3) doesn't allow it and all I could find are references to some RealView compiler. Is there any way of doing this from GCC? I have tried -freg-struct-return but it doesn't make a difference. As ...