CFLAGS = --nogcse --model-large --std-c2x --code-loc 0x0000 --code-size 0x4000 --xram-loc 0x0000 --xram-size 0x400
That will come very useful, thank you for the SDCC hint.
The download links (i.e.
http://www.diyembedded.com/lib/nrf24le1/lib_nrf24le1_sdk_v4.0.zip) didn't work for me, but I could find and download the most recent SDK from Nordic.
The good news is both the Keil C51 and the Nordic SDK can be used under Linux (with WineHQ).
Didn't download yet anything into the nRF chip, but at least the demo projects from Nordic (for nRF24LE1) can be opened and compiled with the latest Keil C51 (which can be used free with some limitations).
Just for the docs, adding here the install notes:
0. - download:
- Keil from [url]https://www.keil.com/demo/eval/c51.htm[/url]
- Nordic nRFgo SDK 2.3 from [url]https://www.nordicsemi.com/Products/nRF24-series[/url]
1. - install Keil C51 (C51V961.EXE) with right click open with Wine
- !!! change the default path to C:\Keil instead of C:\Keil_v5, because that is the path expected by the nRF Go SDK 'nrfgo_sdk_2.3.0_setup.exe'
2. - install in Wine the nRFgo SDK (nrfgo_sdk_2.3.0_setup.exe)
- !!! check the last checkbox, too, to copy the headers into C:\Keil\C51\INC\Nordic, in Linux that path will be found at:
~/.wine/drive_c/Keil/C51/INC/Nordic
- the installed Nordic SDK is in 'C:\Nordic Semiconductor', which in Linux will be at:
~/.wine/drive_c/Nordic Semiconductor/
- projects examples are in 'C:\Nordic Semiconductor\nRFgo SDK 2.3.0.10040\source_code\projects\nrfgo_sdk\', so in:
~/.wine/drive_c/Nordic Semiconductor/nRFgo SDK 2.3.0.10040/source_code/projects/nrfgo_sdk/
3. - install with Wine the nRFprobe (nrfprobe_v2_0_0_7252.exe), or else dll err at debug (ignore the install message asking for Keil v4, install it in Keil v5)
Didn't try to program the chip yet. Starting with Keil first in order to minimize the unknowns. Once I'll have a Keil demo running on hardware, will switch to the SDCC.
It's those optical sensors or similar that I want. Three of them, specifically, so I could construct my own quaternion/bivector trackball using any ball of about snooker ball size, just sitting in a reader cradle; not captive. In normal use, would be nice to use it to pan and zoom; in 3D, would be optimal for orienting the work at hand.
In case you want the same optical sensors, apparently the Logitech Wireless Mouse M150 is still in production, often sold as a combo of wireless Keyboard+Mouse+2.4GHz receiver. I don't have the receiver, but I suspect that will have inside a nRF24LU1 (which is about the same chip as the nRF24LE1, but with native USB). Beware there is also a nRF24LE1 OTP, pin compatible but not reprogrammable. The mouse I've found has the 2011 date written on the PCB. More recent HW version might have different components, but it's very easy to open the mouse and check (one Philips screw under batteries, without braking any warranty seal).
I've tried to picture the trackball you describe, but couldn't. What do you mean by trackball "sitting in a reader cradle; not captive". If the snooker ball can move freely, where should be the optical sensors sited?