Microchip TCP/IP Stack compatibility
Older versions of the TCP/IP stack had references to macros referencing debug freeze bits such as _SPI2CON_FRZ_MASK. The macros for these freeze bits should never have appeared in the processor header files and application code should not have been using them. The definitions were removed for the C32 v2.00 release. The July 2011 release of the Microchip Application Library with TCP/IP Stack version 5.36.2 removes references to these macros to correct compatibility with MPLAB C32 v2.00. Download the update here: http://www.microchip.com/malPeripheral Library - UART2
The UART peripheral library functions do not work correctly for the UART2 module on the PIC32MX3 and PIC32MX4 devices. The device-support include files pic32mx/include/proc/p32mx3.h and pic32mx/include/proc/p32mx4*.h contain an incorrect base address for the UART2 peripheral.#define _UART2_BASE_ADDRESS 0xBF806800
should be
#define _UART2_BASE_ADDRESS 0xBF806200
for the PICMX3 and PIC32MX4 devices.
This causes the peripheral library functions for the UART2 to access unimplemented SFR addresses rather than the correct UART2 SFR addresses.
One workaround is to correct the _UART2_BASE_ADDRESS address value in your pic32mx/include/proc/pic32mx*.h header file and add a copy of the [C:\Program Files\Microchip\mplabc32\v2.00\pic32-libs\peripheral\uart\source\uart_lib.c] source file to your project.
Uninitialized data clearing
Uninitialized global variables should be cleared to zero on startup. There is an issue with the v2.00 startup code where variables allocated in the "common" section are not correctly zeroed on startup. One workaround is to disable support for commons by adding the compiler option "-fno-common" to the alternate settings field for your project. Another workaround is to modify the C startup code as described in this web forum post. http://www.microchip.com/forums/fb.ashx?m=588408Exception when using a Custom Linker Script
The default startup code is initializing the bus matrix as if ram functions exist in a project, even when no such ram functions exist. This causes a problem whenever the end address of the kseg1_data_mem region is not 2k aligned in a custom linker script, since the bus matrix registers must be 2k aligned. To workaround the issue for now, add the following line to your custom linker script: _ramfunc_begin = 0;This causes the startup code to skip over the bus-matrix initialization code.
No comments:
Post a Comment