1 ================ Revision history ============================================
\r
6 - Various corrections and improvements of Jade/Pearl/EFR family files.
\r
9 - Added CRYPTO module (cryptographic engine) to Jade/Pearl/EFR families.
\r
12 - Added device headers for new families EZR32HG (EZR Happy Gecko), EFM32JG
\r
13 (Jade Gecko) and EFM32PG (Pearl Gecko)
\r
14 - Bugfixes in EZR32 LG and WG system/startup files.
\r
15 - Added support for new EZR32HG family.
\r
18 - Use ARM CMSIS version 4.2.0.
\r
19 - emlib: New style version macros in em_version.h.
\r
20 - usb: Added support for isochronous endpoint transfers.
\r
23 - EFR32 header release.
\r
27 - CMSIS: No changes.
\r
28 - Device: Added device header files for new Happy Gecko family.
\r
29 - Device: Corrected RF_GPIO0_PORT macro in EZRLG/WG part header files.
\r
30 - emlib: Added new style family #defines in em_system.h, including EZR32 families.
\r
31 - emlib: Fixed I2C_FREQ_STANDARD_MAX macros.
\r
32 - emlib: Fixed bug in MSC_WriteWord which called internal functions that were
\r
33 linked to flash for armgcc. All subsequent calls of MSC_WriteWord
\r
34 should now be linked to RAM for all supported compilers. The
\r
35 internals of MSC_WriteWord will check the global variable
\r
36 SystemCoreClock in order to make sure the frequency is high enough
\r
37 for flash operations. If the core clock frequency is changed,
\r
38 software is responsible for calling MSC_Init or SystemCoreClockGet in
\r
39 order to set the SystemCoreClock variable to the correct value.
\r
40 - emlib: Added errata fix IDAC_101.
\r
44 - emlib: Added errata fix EMU_108.
\r
45 - emlib: #ifdef's now use register defines instead of a mix of register and family defines.
\r
46 - emlib: Added a case for when there are only 4 DMA channels available:
\r
47 Alignment was (correctly) defined at 7 bit, but got asserted for 8 bit, leading
\r
48 to unpredicatable tripped asserts.
\r
49 - emlib: Added USART_INITPRSTRIGGER_DEFAULT defined structure to support HWCONF.
\r
50 - emlib: Added support for LFC clock tree.
\r
51 - emlib: Added CMU_USHFRCOBandSet() and CMU_USHFRCOBandGet().
\r
52 - usb: Replaced USB_EP0_SIZE and USB_MAX_EP_SIZE macros with new versions which
\r
53 have correct values for low speed/full speed/endpoint types.
\r
56 - Device header release only. Added part headers for EZR families EZR32LG
\r
60 - CMSIS/Device/emlib: No changes.
\r
61 - usb: Added support for Happy Gecko USB LEM (Low Energy Modes).
\r
62 - usb: Fixed bug in suspend powersave mode implementation.
\r
65 - New and updated headers for the Happy Gecko family.
\r
66 - emlib: Added support for Happy Gecko including support for the new oscillator USHFRCO.
\r
67 - emlib: Added MSC_WriteWordFast() function. This flash write function has a similar
\r
68 performance as the old MSC_WriteWord(), but it disables interrupts and
\r
69 requires a core clock frequency of at least 14MHz. The new MSC_WriteWord()
\r
70 is slower, but it does not disable interrupts and may be called with core
\r
71 clock frequencies down to 1MHz.
\r
72 - emlib: Fixed a bug in EMU_EnterEM4() that set other EM4 configuration bits to 0
\r
74 - emlib: Added EMU_EM23Init().
\r
75 - emlib: Fixed a bug in CMU_FlashWaitStateControl() where it failed to set the
\r
76 required wait-state configuration if the MSC is locked.
\r
77 - emlib: Added EMU interrupt handling functions.
\r
78 - emlib: BURTC_Reset() changed to use async reset RMU_CTRL_BURSTEN instead of
\r
79 reset value writeback. This makes the function independent of a selected
\r
81 - emlib: BURTC_Sync() now returns without waiting for BURTC->SYNCBUSY to clear
\r
82 when no clock is selected in BURTC_CTRL_CLKSEL.
\r
83 - emlib: Fixed assertion bug in ACMP_ChannelSet() that checked the negSel parameter
\r
84 against the wrong upper bound.
\r
85 - usb: Added support for Happy Gecko USB peripheral.
\r
86 - usb: Improved USB cable plug/unplug robustness.
\r
89 - This release contains headers etc. for the Happy Gecko family.
\r
92 - Support for new part numbers EFM32GG900F1024, EFM32GG900F512,
\r
93 EFM32LG360F256 and EFM32WG360F256.
\r
94 - Header files for Leopard device family are according to Product Revision E.
\r
96 - emlib: Fixed CMU_MAX_FREQ_HFLE macro for Wonder family.
\r
97 - emlib: Fixed MSC_WriteWord() bug.
\r
98 - emlib: Added syncbusy wait in RTC_Reset() for Gecko family.
\r
99 - usb: Fixed bug in device stack when resuming from partial powerdown mode.
\r
100 - usb: Disable PHY pins and stop USB clocks in USBD_Stop() and USBH_Stop() functions.
\r
101 - usb: Fixed max FIFO size limit for device mode.
\r
102 - usb: Fixed possible deadlock in USBD_Init() and USBH_WaitForDeviceConnectionB().
\r
103 - usb: Added configurable VBUSEN pin usage to support hw without VBUS switch.
\r
106 - emlib: Corrected fix for Errata EMU_E107.
\r
109 - New part header file folder structure.
\r
110 Header files are now in this path:
\r
111 Device/SiliconLabs/EFM32<FAMILY>/Include/efm32<family><partno>.h
\r
112 Old folder structure is still present for backward compatibility reasons.
\r
113 Device/EnergyMicro/EFM32<FAMILY>/Include/efm32<family>_cmu.h
\r
114 The same change of path applies to all startup and linker files:
\r
115 Device/SiliconLabs/EFM32<FAMILY>/Source/...
\r
116 - emlib: Updated license texts.
\r
117 - emlib: Removed unnecessary fix for Wonder Gecko.
\r
118 - emlib: Updated LFXO temperature compensation in CHIP_Init().
\r
119 - emlib: Changed LESENSE_ScanStart, LESENSE_ScanStop, LESENSE_DecoderStart,
\r
120 LESENSE_ResultBufferClear and LESENSE_Reset functions to wait until
\r
121 CMD register writes complete in order to make sure CMD register writes do
\r
122 not break each other, and for register values to be consistent when
\r
123 returning from functions that write to the CMD register.
\r
124 - emlib: Added fix for Errata EMU_E107.
\r
125 - emlib: Added family to SYSTEM_ChipRevision_TypeDef.
\r
126 - emlib: Fixed bug in function AES_OFB128 which failed on Zero Gecko.
\r
127 - emlib: Fixed RMU_ResetCauseGet to return correct reset causes.
\r
128 - emlib: Fixed bug in RTC_CounterReset which failed to reset counter immediately
\r
129 after return on Gecko devices.
\r
130 - emlib: Added static inline non-blocking USART receive functions (USART_Rx...).
\r
131 - emlib: Added function SYSTEM_GetFamily.
\r
132 - emlib: Added function DAC_ChannelOutputSet.
\r
133 - emlib: Fixed MSC_WriteWord to not use WDOUBLE if LPWRITE is set.
\r
134 - usb: Fixed bug which could cause malfunctioning when prescaling core clock.
\r
135 - usb: Updated license terms.
\r
136 - usb: Fixed potential EP sram partitioning problems.
\r
137 - usb: Allow 64 and 32 byte EP0 max packetsize.
\r
138 - usb: Fixed bug in USBTIMER_Start(), added check on timeout value of 0.
\r
139 - usb: Fixed setting USB device state on USB reset from suspend.
\r
140 - usb: Added support for composite devices in the device stack.
\r
141 - usb: Made special provisions for passing USB-IF "Powered Suspend" test.
\r
144 - Added Zero Gecko family header files.
\r
145 - Added MEMINFO_FLASH_PAGE_SIZE to DEVINFO structure.
\r
146 - emlib: Fixed bug regarding when MEMINFO in DEVINFO was introduced.
\r
147 The correct crossover is production revision 18.
\r
148 - emlib: Fixed bug in WDOG_Feed which does not feed the watchdog if the watchdog
\r
149 is disabled. Previously, the watchdog was broken after WDOG_Feed fed it
\r
150 when it was disabled.
\r
151 - emlib: Fixed issue in em_i2c.c, which should set the NACK bit in the I2C CMD
\r
152 register for the next to last byte received. The exception is when only
\r
153 one byte is to be received. Then the NACK bit must be set like the
\r
154 previous code was doing.
\r
155 - emlib: Added function BURTC_ClockFreqGet in order to determine clock frequency
\r
157 - emlib: Fixed bug in BURTC_Reset which made a subsequent call to BURTC_Init hang.
\r
158 - emlib: Added support for the IDAC module on the Zero Gecko family, em_idac.c/h.
\r
159 - emlib: Fixed bug in DAC_PrescaleCalc() which could return higher values than
\r
160 the maximum prescaler value. The fix makes sure to return the max prescaler
\r
161 value resulting in possible higher DAC frequency than requested.
\r
162 - emlib: Fixed I2C_BusFreqSet to use documented values for Nlow and Nhigh values,
\r
163 and do not decrement the div(isor) by one according to the formula because
\r
164 this resulted in higher I2C bus frequencies than desired.
\r
165 - usb: Increased robustness when plug/unplug-ing the USB cable rapidly.
\r
166 - usb: Changed implementation of usb string macro, wchar_t is no longer used.
\r
167 GCC commandline options -fwide-exec-charset=UTF-16LE, -fshort-wchar and
\r
168 -Wl,--no-wchar-size-warning are no longer needed.
\r
169 Old version was used like this:
\r
170 STATIC_CONST_STRING_DESC( iManufacturer, L"Energy Micro AS" );
\r
171 New version is used like this:
\r
172 STATIC_CONST_STRING_DESC( iManufacturer, 'E','n','e','r','g','y',' ', \
\r
173 'M','i','c','r','o',' ','A','S' );
\r
176 - Part header files: Added EFM32 Wonder Gecko support.
\r
177 - Part header files: FLASH_PAGE_SIZE macro added to all part files.
\r
178 - emlib: LEUART: Added LEUART_TxDmaInEM2Enable and LEUART_RxDmaInEM2Enable for
\r
179 enabling and disabling DMA LEUART RX and Tx in EM2 support.
\r
180 - usb: Documentation changes only.
\r
183 - Internal release for testing Wonder Gecko support.
\r
186 - Part header files: New header file em_device.h replace previous efm32.h.
\r
187 efm32.h is kept for backward compatibility.
\r
188 - Part startup files: system_efm32*.c files now handle CMU HFRCO frequencies
\r
189 correct for Production Revision 19 and higher.
\r
190 IAR startup_efm32*.c files now includes em_device.h.
\r
191 - emlib: Changes in MSC, CMU, BITBAND, DMA, BURTC and SYSTEM modules.
\r
192 Refer to emlib changes file for details.
\r
193 - usb: Bugfix, USBD_Init() may now be called when USB peripheral is in partial
\r
195 New function USBD_EpIsBusy( int epAddr ) added to API.
\r
196 Changed USBD_AbortTransfer() from USBD_AbortTransfer( uint8_t ) to
\r
197 USBD_AbortTransfer( int ).
\r
198 Added configuration of which hw TIMER the stack will use.
\r
201 - Part header files: Corrected resetvalue for CMU CTRL register
\r
202 - Part header files: Added missing DMA channel registers for Giant family
\r
203 - emlib: LFXO fix for Giant family.
\r
204 - usb: Added more flexibility for taking advantage of energymodes in USB applications.
\r
207 - WARNING: This is a major update which reorganizes Energy Micro software.
\r
208 Peripheral APIs are kept intact, but you must update project-/makefiles
\r
209 and source files to use this version. PLEASE READ THE INSTRUCTIONS BELOW
\r
212 - Updated to CMSIS-SP-00300-r3p1-00rel0 delivery from ARM Inc, including
\r
213 DSP_Lib, RTOS abstraction layer, support for Cortex-M4, Cortex-M0+
\r
214 (Flycatcher) and more. For a detailed overview see
\r
215 CMSIS/Documentation/General/html/index.html
\r
217 - New file structure of part specific header files deployed according to
\r
218 CMSIS_V3 requirements. These are the most important changes, that must be
\r
219 changed in project files/Makefiles to update to this new release.
\r
221 Cortex-Mx Core header files
\r
222 CMSIS/CM3/CoreSupport -> CMSIS/Include
\r
223 Gecko part specific header files
\r
224 CMSIS/CM3/DeviceSupport/EFM32/ -> Device/EnergyMicro/EFM32G/Include
\r
225 Tiny Gecko part specific header files
\r
226 CMSIS/CM3/DeviceSupport/EFM32/ -> Device/EnergyMicro/EFM32TG/Include
\r
227 Giant Gecko part specific header files
\r
228 CMSIS/CM3/DeviceSupport/EFM32/ -> Device/EnergyMicro/EFM32GG/Include
\r
229 Leopard Gecko part specific header files
\r
230 CMSIS/CM3/DeviceSupport/EFM32/ -> Device/EnergyMicro/EFM32LG/Include
\r
232 - The earlier "core_cm3.c" file is now gone and can be deleted from projects,
\r
233 the functionality has moved into "core_cm3.h" (this header file is included
\r
234 in the part specific header file)
\r
236 - Part specific header file size reduction has been implemented. The most common
\r
237 peripheral definitions have been moved into separate files, for instance a
\r
238 standard CMU implementation will be in defined in the file
\r
239 -> Device/EnergyMicro/EFM32<FAMILY>/Include/efm32<family>_cmu.h
\r
240 For devices without a full configuration of the peripheral, the definitions
\r
241 are kept in the part specific header file.
\r
243 - System files moved to family specific "Source" folder
\r
244 CMSIS/CM3/DeviceSupport/EFM32/system_efm32.c
\r
245 -> Device/EnergyMicro/EFM32<FAMILY>/Source/system_efm32<family>.c
\r
247 - Startup files moved to family specific "Source" folder
\r
248 CMSIS/CM3/DeviceSupport/EFM32/startup/iar/
\r
249 -> Device/EnergyMicro/EFM32<FAMILY>/Source/IAR
\r
250 CMSIS/CM3/DeviceSupport/EFM32/startup/arm/
\r
251 -> Device/EnergyMicro/EFM32<FAMILY>/Source/ARM
\r
252 CMSIS/CM3/DeviceSupport/EFM32/startup/cs3/
\r
253 -> Device/EnergyMicro/EFM32<FAMILY>/Source/G++
\r
255 - Additional "generic GCC" (such as https://launchpad.net/gcc-arm-embedded or
\r
256 http://www.yagarto.de) target startup/linker files
\r
257 -> Device/EnergyMicro/EFM32<FAMILY>/Source/GCC
\r
259 - Gecko startup file has got a "g" (for Gecko family) appended to filename,
\r
260 i.e. startup_efm32g.s, not startup_efm32.s as earlier. Similar for linker
\r
263 - "efm32lib" has been renamed "emlib" as it will support future Energy Micro
\r
264 devices that are not in the EFM32 families. You will need to change all
\r
265 include files starting with
\r
266 #include "efm32_<peripheral>.h" -> #include "em_<peripheral>.h"
\r
267 in your source code. APIs within peripherals are compatible with earlier
\r
268 "efm32lib" releases.
\r
269 Also see emlib/Changes_emlib.txt file for further updates.
\r
271 - "efm32usb" folder has been renamed to just "usb" for the same reasons as
\r
272 the peripheral library, and all files are now prefixed em_usb.
\r
273 Change all header file references from
\r
274 efm32_usb<component>.h -> em_usb<component.h>
\r
275 Also see usb/Changes_usb.txt for further updates.
\r
278 - New, open source friendly license for all core support files in CMSIS
\r
279 and efm32lib (efm32usb keeps original license)
\r
280 - Giant/Leopard Gecko Removed USBC_PRESENT from devices not having USB
\r
281 - Giant/Leopard Gecko EMU BOD calibration registers for Backup Domain
\r
282 - Giant/Leopard Gecko USB VBUSENCAP/DMPUAP_LOW and HIGH was inverted
\r
283 - Giant/Leopard Gecko MSC BUSSTRATEGY_DMAEM2 define corrected to DMAEM1
\r
284 - Giant/Leopard Gecko CMU, added HFXO boost constants
\r
285 - Giant/Leopard Gecko CMU changed naming of HFCLK for USBC to HFCLKNODIV
\r
286 - Updated efm32lib with fixes, see Changes file in efm32lib folder
\r
289 - Removed unused OPAMP_TypeDef for Tiny Gecko
\r
290 - Added OPAMP_PRESENT/COUNT for Giant Gecko
\r
291 - efm32lib updates, see Changes file in efm32lib folder
\r
292 - efm32usb updates, see Changes filr in efm32usb folder
\r
295 - Fixed IAR startup files, corrected alignment of interrupt vector table
\r
296 - Updated efm32usb library with fixes
\r
297 - Updated efm32lib with new Tiny Gecko and Giant Gecko features
\r
300 - Added DEVICE_FAMILY defines to identify Gecko/Tiny/Leopard/Giant parts
\r
301 - Fixed missing EMU_IRQ definitions in Leopard Gecko startup files
\r
302 - Added USART location to Tiny Gecko parts
\r
303 - Added LEUART locations to Tiny Gecko parts
\r
304 - Updated efm32lib with new Giant Gecko features (see separate readme)
\r
305 - Updated efm32usb with USB Host stack support (see separate readme)
\r
308 - Removed huge AF_PORT, AF_PIN macros from header files, only peripheral
\r
309 specific alternate function defines are included
\r
310 - Updated efm32usb library with fixes
\r
311 - Updated efm32lib library with fixes
\r
314 - Added interleave to all Giant Gecko parts
\r
315 - Updated efm32lib with more Giant Gecko features
\r
316 - Added efm32usb, USB Device stack for Giant Gecko USB parts
\r
317 - Added LOCATION defines for all I2C alternate locations on Tiny Gecko
\r
320 - Added header files for Giant Gecko and Leopard Gecko devices
\r
321 - Minor fix for Gecko devices, EMU_CTRL_MASK was wrong
\r
322 - Fix for linker issue alignment of .data section in codesourcery .ld files
\r
325 - DAC_OPAnMUX_POSSEL_OPAnIN changed to DAC_OPAnMUX_POSSEL_OPAnINP for Tiny
\r
327 - Added CMU_ROUTE_LOCATION, LOC2 for Tiny Gecko
\r
328 - PRS #define fixes, remove extra IRDA fields only available on USART0
\r
331 - This release based on CMSIS_2_00, includes DSP_Lib (for Keil MDKARM, IAR has
\r
332 a port included with EWARM)
\r
333 - Removed "shadow" example that used to be in CMSIS directory earlier, use
\r
334 "blink" from board examples as starting point instead
\r
335 - Restructured header files to comply with CMSIS_2_00
\r
336 - CMU_CALCTRL_REFSEL is renamed to CMU_CALCTRL_UPSEL to match reference
\r
337 manual and clearify new DOWNSEL calibrartion features for Tiny Gecko
\r
338 - Added header files for new package types for Gecko devices
\r
339 - Added header files for Tiny Gecko devices
\r
342 - DMA register WAITSTATUS changed to CHWAITSTATUS for consistency
\r
343 DMA test req/sreq registers added, CHSREQSTATUS and CHREQSTATUS
\r
344 - IFS and IFC interrupt registers are now marked as readable for several
\r
346 - TIMER, CCC renamed to CDTI
\r
347 - TIMER, QEM has been renamed to QDM
\r
348 - AF_DBG_SWV/TCLK/TDIO renamed to more commonly used AF_DBG_SWD/SWDIO/SWDCLK
\r
349 - AF_EBI_ADDRDAT renamed to AF_EBI_AD
\r
350 - Removed bit fields for extra LCD segment registers for Gecko parts
\r
351 - Fixed LCD_SEGEN_MASK, bit width was too narrow in version 1.2.x
\r
352 - Fixed LCD_SYNCBUSY bit fields
\r
353 - CMU_PCNTCTRL reset values corrected
\r
354 - PCNT_TOP and PCNT_TOPB reset values corrected
\r
355 - ADC_LPFMODE_RCFILT and LPFMOD_DECAP definitions corrected (they were
\r
357 - USART_RXDATAFULLRIGHT and USART_RXDATAVRIGHT removed for Gecko parts
\r
358 - GPIO, renamed INSENSE_PRSSENSE to INSENSE_PRS, similar for INT
\r
359 to be consistent with updated documentation (Reference Manual)
\r
362 - Fixed DEVINFO calibration shift and mask value for temperature sensor
\r
363 fixed in rev.C Gecko devices
\r
366 - Added new subgroup "Parts" for all part definitions in doxygen format
\r
367 - Removed unused _PARAM_ type definitions, less clutter in header files
\r
368 - _CMU_PCNTCTRL_RESETVALUE corrected
\r
369 - Added C startup file for IAR, can be used as replacement for assembly file
\r
370 - Use #defines instead of "numeric values reentered" in bit field definitions
\r
371 - TIMER_PARAM_CCNUM(i) changed to TIMER_PARAM_CC_NUM(i)
\r
372 - DPI_CHAN_COUNT changed to PRS_CHAN_COUNT
\r
375 - TIMER_INIT_DEFAULT fix to efm32lib
\r
378 - Removed ADC ROUTE register
\r
379 - Renamed DEVINFO DACCAL -> DAC0CAL for all 3 calibration registers and bit
\r
381 - Updated efm32lib with new peripherals
\r
384 - Added support for CodeSourcery Sourcery G++ compiler and startup files
\r
385 - Device Information page (DEVINFO_TypeDef) - fixed several issues with
\r
386 endianness, and other changes to support test revision 4 and above parts.
\r
387 This has led to a small incompatibilty with test rev <= 4 and rev A parts,
\r
388 in that the flash and sram size bit fields has changed location.
\r
389 - DMA_CONTROL_TypeDef changed name to DMA_DESCRIPTOR_TypeDef to be better
\r
390 aligned with PL230 manual and code
\r
391 - DMA bit fields not supported on EFM32 was removed for the PL230 controller
\r
392 - DMA CTRL bit fields renamed to be more consistent with PL230 TRM manual
\r
393 - Added additional volatile statements to pointers in DMA Control structure
\r
394 - Fixed several registers that were readable, and was marked as __O (output
\r
398 - Fixed startup code, CMSIS SystemInit cannot update global variable
\r
401 - Note - some register bit field updates in this release are _not_ backward
\r
403 - Updated register bit fields to comply with documentation updates, i.e.
\r
404 reference manual version > 0.83
\r
405 - Apply patch to CMSIS core for GCC issues
\r
406 - Added DMA_CONTROL_TypeDef control block for PrimeCell PL230 DMA controller
\r
407 - Added ROMTABLE PID / CHIP revision table and masks
\r
408 - Revised and updated Device Information page structure "DEVINFO page"
\r
409 This structure is ONLY valid for rev.B production devices
\r
410 - GPIO EXTIPSEL bit field marked "16" changed to 15 (bug correction)
\r
411 - Added more bit fields to TIMER_ROUTE registers
\r
412 - Cosmetic updates in doxygen comments and copyright statements
\r
415 - ACMP INPUTSEL bit fields changed from ohm rating to res-n,
\r
416 - Added bit-band base addresses for peripherals and sram
\r
419 - ADC SCANMODE and SCANCTRL bit field updates and corrections
\r
420 - Moved Readme.txt and Changes.txt to CMSIS/Readme-EFM32.txt and
\r
421 CMSIS/Changes-EFM32.txt
\r
422 - CCPEN and CDTIPEN splitted in TIMER_ROUTE
\r
423 - EMVREG in EMU_CTRL enumeration changed
\r
424 - LCD DISPCTRL volatage levels are part specific, changed settings changed to
\r
426 - Added "UL" (unsigned long) to some bit fields giving warnings due to sign
\r
430 - Corrected revision numbers in file headers
\r
431 - Removed example code that was moved into BSP/DVK installer package
\r
434 - Updated to use official CMSIS1V30 release
\r
435 - Corrected IRQ vector table in assembly startup files, IMEM to MSC,
\r
437 - DMA peripheral/signal names corrected
\r
438 - Example Blinky application updated to work on all EFM32 MCU-Modules on DVK
\r
439 - Added "simple" board support package to example
\r
440 - Added "UL" (unsigned long) tag to several fields
\r
444 - Includes CMSIS1V30 2nd PreRelease
\r
445 - Now requires two include paths, CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32 and
\r
446 CMSIS/CM3/CoreSupport
\r