ERC32 System Registers

John Alexandersson john at
Thu Aug 26 12:18:05 UTC 2004

My guess would be that you, somewhere in your crc-routine, are trying
to do a Byte or half-word store access, which is not allowed on the
erc32 system registers.

Maybe declaring sysreg as (unsigned32*)would help?

Only 32-bit store accesses are allowed on erc32 system registers.

/John Alexandersson

Carlos Bruno Silva wrote:
> Hash: SHA1
> I'm trying to calculate the CRC of the  Erc32 System Registers 
> (0x01f8....).
> These registers are mapped in memory through the adresses like the one 
> above.
> First I tried using the same technique I used to do the memory CRC, that 
> was to pass the adress to my CRC calculation routine, and the length of 
> it in bytes.
> Since it is a 32bit registers, I passed somehing like this:
> sysreg=(char*)(0x01f80000);
>  crc_sys_regs=binhex_updcrc(0,sysreg, 4);
> and for the second register, feeded back the value:
> sysreg=(char*)(0x01f80010);
>  crc_sys_regs=binhex_updcrc(crc_sys_regs,sysreg, 4);
> and so on.. and so on...
> But this way, when I run the program I get a trap number 9.
> Also tried to do this in Assembly, by loading the content of the adress 
> 0x01f8000 to a register... but it gives a relocation overflow.
> Maybe all this troubles are because of this registers being mapped in 
> memory, but not really in memory...
> Has anyone ever tried to do something like this? With success preferably?
> :)
> Carlos S.
> Version: GnuPG v1.2.1 (GNU/Linux)
> Comment: Made with pgp4pine 1.76
> JXEfEJZbVEnjZaEqII8U+6c=
> =4ke3
> .

More information about the users mailing list