Building GNAT GPL 2014 for arm-eabi
These notes describe building GNAT GPL 2014 for the Cortex M4 on Mac OS X.
My target board was the STM32M4F29I Discovery.
Read more Β»These notes describe building GNAT GPL 2014 for the Cortex M4 on Mac OS X.
My target board was the STM32M4F29I Discovery.
Read more Β»AdaCore's doinstall is an excellent way of installing the compiler where you want to. Unfortunately, GCC 4.9 uses the shared libgcc_s.1.dylib, which has no @rpath-type constructs, and so the compiler executables expect to find libgcc_s.1.dylib in the place it was built for. (Not to mention libstdc++.6.dylib.)
Read more Β»These notes describe building GCC 5.1.0 for Mac OS X, with Ada, C, C++, Fortran, Objective C, Objective C++, and various GNAT tools.
Read more Β»These notes describe building GCC 5.1.0 for the Cortex M4 on Mac OS X.
My target board is the STM32M4F29I Discovery.
Read more Β»The public version of the AdaCore Ravenscar RTS is released under the full GPL. It seemed as if it would be a good idea (and fun!) to produce an independent RTS with the GCC Runtime Library Exception(FAQ).
Read more Β»Iβve been porting my Cortex-based RTS to Arduino Due, using the J-Link JTAG interface (because who can make an RTS without a debugger?). Iβve probably forgotten my initial problems with ST-LINK (an equivalent interface included for free on the STM32F4 board, supported by OSS software), but it seemed a much less trying experience than with Segger.
There are two things with J-Link GDB Server: first, it seems like a bad idea to keep the server alive after a GDB session ends, so start it with -singlerun; and second, you absolutely must issue monitor reset before running your program. If you donβt youβll end up like I did, scratching my head for three days trying to understand why I was getting a HardFault at the SVC that FreeRTOS uses to kick tasking off.
A watchdogis used to detect when a system has gone off with the fairies; you have to reset the watchdog timer ("pat the watchdog") every so often or it takes some recovery action. In the case of the Arduino Due, with the ATSAM3X8E MCU, the recovery action is to reset the CPU.
In the ATSAM3X8E (and probably other Atmel MCUs, too), the watchdog timeout defaults to 16 seconds, and the default hardware state is that the watchdog is enabled! (the default in the Atmel Software Framework is to disable the watchdog unless you have defined CONF_BOARD_KEEP_WATCHDOG_AT_INIT
).
This is a note on installing the Eclipse Arduino Plugin, specifically on Windows (32-bit), with pointers to archived materiel.
Read more Β»This is a note on overcoming a problem connecting to my STM32F429I-DISCOboard.
Read more Β»I seem to have fritzed one or two of the pins on my STM32F429I-DISC0 board (now replaced by an updated version, STM32F429I-DISC1; that last character was a 0!); after some hair-pulling it turns out that one of said pins is used by the only externally-accessible I2C peripheral on the board; so, until the replacement arrives, here are some interesting facts about the PCF8547A.
Read more Β»I downloaded a new version of eclipseArduino(Arduino development within Eclipse). After unpacking and moving to /Applications, I get the message
"eclipseArduino" is damaged and can't be opened. You should move it to the Trash.
Huh.
After a lot of poking around, I found this:
I wanted to update Audacity, but the 2.1.2 version (from the official download site) wouldnβt run: I got canβt open application Audacity.
Read more Β»This is a note on building support for the MPU92509-axis chip in the AdaPilotproject (the AdaRacerhardware). It continues this report.
Read more Β»We probably feel downhearted if we need to use the debugger to find out what's wrong with our Ada code.
Under those circumstances, we feel even more frustrated if the debugger doesn't work!
This is exactly what has happened with gdb and macOS Sierra.
Read more Β»This is a note on getting set up to work on a Crazyflie 2.0.
After unpacking, testing and assembling the drone, you need to get some software to talk to it.
Read more Β»
In GNAT, the secondary stack is a construct used with indeterminate types. For example, if a function returns a String, it isn't possible for the caller to determine how much space to reserve for the result: instead, the called function allocates the amount of space required on the secondary stack, and on return the caller determines how much space to allocate on the normal (primary) stack, and pops the function's result from the secondary stack to there.
This note discusses how the secondary stack is managed in Cortex GNAT RTS for FSF GCC and GNAT Community Edition (was GNAT GPL).
Read more Β»