Branch from {armc0}, directed at Raspberry Pi
A scratch C compiler with inline assembler, producing fixed-address and relocatable ARM Thumb
executable images for the Raspberry Pi.
Executables are suitable for
loading by firmware files bootcode.bin and start.elf and using
a simple config.txt file containing the lines:
kernel chaos.bin
kernel_address 0x8000
{armc1} is chaotic, a means to an end rather than an end in itself. Here are the current source files (I will post the #include files later):
i86 Source files uploaded 20/3/1016 are:
main
armasm
armhelp
prep
gen
seq
decl
init
lit
rl
enum
struct
union
flow
func
call
ut
opr
sy
getop
nc
pc
fetch
i86
exp
20.3.16 Modified IMMMAX in nc and opr.doarrayindex() to avoid generating 4-byte Thumb-2 ADDREGIMM opcodes - these work on the Pi2 and Pi3 (BCM2836,BCM2837), but not on the Pi1 or Pi0 (BCM2835).
14.3.16 Added code to init for null pointer assignment. Modified IMMMAX in nc and opr.doarrayindex() to avoid generating 4-byte Thumb-2 ADDREGIMM opcodes - these work on the Pi2,Pi3 but not on the Pi1,Pi0.