Difference between revisions of "Netduino Plus 2 Firmware"
(→Native Code Interop) |
(→Native Code Interop) |
||
Line 2: | Line 2: | ||
[http://wiki.netduino.com/Building-Netduino-Plus-2-Firmware-4-2-2-0-with-Yagarto-GCC-4-6.ashx Instructions on how to build the default firmware using YAGARTO 20110429], I've gotten this to work. Do not attempt to use any other GCC version, only 4.6.0 works, 4.6.2 will not work. Do not attempt to update the firmware if a new one is available. | [http://wiki.netduino.com/Building-Netduino-Plus-2-Firmware-4-2-2-0-with-Yagarto-GCC-4-6.ashx Instructions on how to build the default firmware using YAGARTO 20110429], I've gotten this to work. Do not attempt to use any other GCC version, only 4.6.0 works, 4.6.2 will not work. Do not attempt to update the firmware if a new one is available. | ||
+ | |||
+ | =Recovery= | ||
+ | |||
+ | Unplug everything, hold down the button while plugging in the USB connector. This should bring up DFU mode (appears as STM32 Bootloader). Use DefuSe Demo to load the "factory image" .dfu file on. Use MFDeploy to set the network MAC address. | ||
+ | |||
+ | =Updating Firmware= | ||
+ | |||
+ | It's a better idea to use MFDeploy to update the firmware using the ER_CONFIG and ER_FLASH files (the S19 record version). This should work as long as the bootloader doesn't change. | ||
=Native Code Interop= | =Native Code Interop= |
Latest revision as of 23:05, 4 September 2013
notes about modifying the firmware of Netduino Plus 2
Instructions on how to build the default firmware using YAGARTO 20110429, I've gotten this to work. Do not attempt to use any other GCC version, only 4.6.0 works, 4.6.2 will not work. Do not attempt to update the firmware if a new one is available.
Contents |
[edit] Recovery
Unplug everything, hold down the button while plugging in the USB connector. This should bring up DFU mode (appears as STM32 Bootloader). Use DefuSe Demo to load the "factory image" .dfu file on. Use MFDeploy to set the network MAC address.
[edit] Updating Firmware
It's a better idea to use MFDeploy to update the firmware using the ER_CONFIG and ER_FLASH files (the S19 record version). This should work as long as the bootloader doesn't change.
[edit] Native Code Interop
Try to keep all of the native calls inside separate static classes, without any fields or properties, in order to avoid C++ compiler errors. The stub generation doesn't seem to generate everything you need.
[edit] Pin Mapping
See "STM32_GPIO_functions.cpp", it uses
GPIO_TypeDef* port = Port(pin >> 4);
and
#define Port(port) ((GPIO_TypeDef *) (GPIOA_BASE + (port << 10)))