3 ms·
The XAP processor architecture use in CSR Bluetooth Chips (design orginally from Cambridge Consultants) is one such processor. On it: A 'byte' is 16 bits. A wo
by rkangel 11y ago
The XAP processor architecture use in CSR Bluetooth Chips (design orginally from Cambridge Consultants) is one such processor.
On it:
A 'byte' is 16 bits.
A word is 16 bits (so sizeof(int) == 1)
A function ptr is 24 bits (so sizeof(Fx) == 2)
CSR have sold well over a billions chips. There is a strong argument that this is the 3rd most popular architecture family after ARM and X86/64.
Things that x86 programmers do that won't work because they make assumptions the C standard doesn't specify:
Cast a uint16_t* to uint8_t* to extract the upper and lower octets of the uint16 (a uint8_t array is actually in memory a uint16_t array using only the lower 8 bits)
Store a function pointer in a void* (throws away upper 8 bits of the 24 bit func pointer).
- Roboprog 11y agoWould you port x86 code, like say the Apache web server, to this chip? Or is it basically a memory constrained little device that you are writing a driver for, from scratch? Seems like you would learn the rules, even though they are a bit odd, easily enough while writing something from scratch, or maintaining an existing (somewhat) small driver program. Agreed, though, be aware (or just beware?) that this chip is quite different, and new skills MUST be learned.