Linux preempt-rt

Check our new training course

Real-Time Linux with PREEMPT_RT

Check our new training course
with Creative Commons CC-BY-SA
lecture and lab materials

Bootlin logo

Elixir Cross Referencer

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
# Change Log for Amazon FreeRTOS

## 201908.00 08/26/2019

### New Features
#### New Board:Nuvoton NuMaker-IoT-M487
- Nuvoton NuMaker-IoT-M487 is now qualified for Amazon FreeRTOS.
- Disclaimer on RNG: The random number generation solution in this port is for demonstration purposes only. 

#### FreeRTOS Kernel V10.2.1
- Kernel version for Amazon FreeRTOS is updated to V10.2.1.
- Add ARM Cortex-M23 (ARMv8-M) GCC/ARMclang and IAR ports.
- Add support to automatically switch between 32-bit and 64-bit cores to RISC-V port.

#### HTTPS Client Library V1.0.0
- The HTTPS Client library for Amazon FreeRTOS supports the HTTP/1.1 protocol over TLS. 
- The current request methods supported are GET and HEAD.
- Examples demonstrate downloading a file from S3 using GET with a pre-signed URL.

### Updates
#### PKCS #11
- Update the Amazon FreeRTOS mbedTLS-based PKCS #11 implementation, tests, demos, and PKCS #11 consuming libraries for compliance with standard.
- Add PKCS #11 wrapper functions for easy use of commonly grouped PKCS #11 calls.

#### Demo specific stack size and priority
- Make stack size and priority to be demo specific. In current release all demos have same stack size and priority. This change will make stack size and priority configurable for each demo. Demo can use default stack size/ priority or define its own.  
#### Ethernet for Microchip Curiosity PIC32MZEF
- Update Microchip Curiosity PIC32MZEF project and configuration files to support Ethernet connectivty. Developers must define PIC32_USE_ETHERNET at the project level to use Ethernet instead of Wi-Fi.
#### lwIP 2.1.2
- Update lwIP to version 2.1.2, and change existing ports as necessary.

### Test Updates
- Remove elliptic curve tests from "quarantine" test group and add them back to the TLS test group.

#### AWS OTA Agent
- OTA Callback changes for custom and secondary processor jobs. Modifying the OTA Agent to use callback structure instead of directly calling PAL functions. This allows users to pass in custom callbacks for the PAL functions.

## 201906.00 Major 06/17/2019
### Release Versioning
- Move Amazon FreeRTOS to a new versioning scheme (YYYYMM.NN [optional "Major" tag]), while retaining semantic versioning (x.y.z) used for individual libraries within Amazon FreeRTOS. This release contains multiple major version updates for individual libraries. See below for details.

### Folder Structure
- Update folder structure to provide a cleaner separation between FreeRTOS kernel, standard libraries, AWS libraries, platform-specific ports and 3rd party libraries. Customers upgrading from earlier versions will need to update their project files.

### New Features
#### Bluetooth Low Energy Management Library V1.0.0
- Bluetooth Low Energy management API for GAP and GATT services, with support for
    - Bluetooth Low Energy v4.2 and above.
    - Device discovery, notifications and indications.
    - Creating, starting, stopping, and deleting GATT services.
    - “Just Works” and “Secure Connections - Numeric Comparison” connection methods.
- Companion device SDK 1.0.0 release for
    - Android https://github.com/aws/amazon-freertos-ble-android-sdk/
    - iOS https://github.com/aws/amazon-freertos-ble-ios-sdk/
- GATT services for 
    - Device information.
    - Wi-Fi credentials provisioning.
    - MQTT-over-Bluetooth Low Energy through Android or iOS device proxy to support.
        - OTA and Device Shadow functionality.

#### MQTT Library V2.0.0, Device Shadow Library V2.0.0, and Device Defender Library V2.0.0
- Enable consistent re-use pattern of one single connection across all libraries.
- Add support for MQTT 3.1.1 standard features.
    - Last Will and Testament.
    - QoS1 with randomized retry logic.
    - Persistent sessions.
- Add programming model revisions to enable.
    - Fully non-blocking programming model.
    - Per-operation user callback.
    - Fully dynamic or fully static memory management.
    - Full support for Bluetooth Low Energy transport as well as TCP/IP.
    - Re-implementable abstraction layer to allow port on any network stacks.
    - Standard, configurable logging mechanism.
- Extend Device Defender support to additional development boards. Current set of metrics now available on all development boards that implement Secure Sockets abstraction.  

#### Task Pool library V1.0.0
- Task (Thread) pool library for asynchronous processing.

#### Atomic Operations Library V1.0.0
- Add library for atomic operations support.

### Updates
#### Wi-Fi Management Library V1.0.3
- Add new API ```WIFI_RegisterNetworkStateChangeEventCallback``` to allow application notifications for Wi-Fi state transitions.

#### CMake Builds
- Extend the ability to build projects using CMake in addition to providing IDE project files. CMake files are now available for the following development boards:
    - Espressif ESP32-DevKitC
    - Espressif ESP-WROVER-KIT
    - Infineon XMC4800 IoT Connectivity Kit
    - Marvell MW320 AWS IoT Starter Kit
    - Marvell MW322 AWS IoT Starter Kit
    - Microchip Curiosity PIC32MZEF Bundle
    - STMicroelectronicsSTM32L4 Discovery Kit IoT Node
    - Texas Instruments CC3220SF-LAUNCHXL
    - Microsoft Windows Simulator

### Updates 
- mbedTLS library is upgraded to version 2.16.0.
- ESP-IDF version is upgraded to 3.1.3.
- Update demo projects for cleaner separation of platform specific code.
- Documentation update.

## V1.4.8 05/21/2019
### New Features
#### New Boards: Marvell MW320 and MW322
- Marvell boards MW320 and MW322 are now qualified for Amazon FreeRTOS.
- Disclaimer on RNG: The random number generation solution in this port is for demonstration purposes only. 

#### FreeRTOS Kernel V10.2.0
- Kernel version for Amazon FreeRTOS is updated to V10.2.0.
- Add Support for RISC-V.
- Include pre-existing ARM Cortex-M33 (ARMv8-M) GCC/ARMclang and IAR ports.

### Updates

#### Greengrass Discovery V1.0.4
- Include C runtime header for snprintf.
- Sanity check the number of bytes written.
- Thing name can be a non-string literal.

#### MQTT Agent V1.1.5
- Set the socket to block on sends with a timeout in prvSetupConnection.

#### Secure Sockets for FreeRTOS+TCP V1.1.6
- ulApplicationGetNextSequenceNumber is now thread safe without stopping the scheduler.
- Leave the scheduler running during PKCS #11 calls.

#### Wi-Fi for ESP32-DevKitC ESP-WROVER-KIT V1.0.2
- lib/wifi: fix issue with WiFi configuration for non-null strings, and fix scanning failure under certain disconnect scenarios. 
- ib/FreeRTOS-Plus-TCP: do not send eNetworkDownEvent to stack if interface is already down.
- mbedtls: configurable options for controlling dynamic memory allocations.
- lib/third_party: update ESP-IDF to latest v3.1.3 release.
- NetworkInterface: check interface state before sending packets to WiFi driver.
- Fix WIFI_GetMac returning wrong mac address.

#### PKCS #11 PAL for Cypress CYW943907AEVAL1F development kit V1.0.1
- Fix Cypress build error with IDE.

#### PKCS #11 PAL for Cypress CYW954907AEVAL1F development kit V1.0.1
- Fix Cypress build error with  IDE.

#### FreeRTOS+TCP V2.0.11
- Make RST packet handling more robust.
- Make TCP window high and low watermark thresholds runtime configurable.
- Fix parsing of the last option in a DHCP response packet.
- Fix TCP window size calculation.
- Allow the DNS cache to be programmatically cleared.
- Free the memory allocated by the pcap_compile routine in the WinPCap network interface module.

#### Shadow V1.0.6
- Add a debug message in the event that JSMN runs out of memory trying to parse JSON.    
- Print a debug message for any JSMN error, not just 'JSMN_ERROR_NOMEM'.

#### PKCS #11 PAL for Windows Simulator V1.0.4
- Update to permit multithreaded read from object storage.

#### OTA Agent V1.0.2
- Update documentation.

#### TLS V1.1.4
- TLS_Send now handles the error condition when space is not avaiable.	
- Convert errors in TLS wrapper to negative error codes.

#### Curiosity PIC32MZEF Linker Update for XC32 Compiler
- The latest XC32 compiler (version 2.15) does not allow multiple definitions by default. Explicitly enabling multiple definitions in aws_tests and aws_demos projects for now. 

## V1.4.7 02/18/2019
### New Features
### New Boards: Cypress CYW43907 and CYW54907
- Cypress boards CYW54907 and CYW43907 are now qualified for Amazon FreeRTOS.

#### FreeRTOS Kernel V10.1.1
- Kernel version for Amazon FreeRTOS is updated to 10.1.1.
- Update all object handles (TaskHandle_t, QueueHandle_t, etc.) to be unique types instead of void pointers, improving type safety.
- Add Xtensa port.
- Update to the latest trace recorder code.
- Update lint checked MISRA compliance to use the latest MISRA standard.
- Add configUSE_POSIX_ERRNO to enable per task POSIX style errno functionality.

### Updates

#### FreeRTOS+POSIX V1.0.3
- Use stack based alloaction for POSIX types. Stack based allocation will reduce heap fragmentation.
- Fixed potential overflow in Posix timespec utils.
- Stopped Posix timer spawnning thread every time it is invoked.
- Unlock and update owner atomically, while unlocking mutex.

#### MQTT Agent V1.1.4
- Bug fix: MQTT agent tries to setup a connection with the MQTT broker when the socket does not exist.

####  Upgrading ESP-IDF to 3.1.1
- ESP-IDF upgraded to 3.1.1.

#### OTA PAL for Curiosity PIC32MZEF V1.0.3
- Rename variables to comply with style guidelines.

#### OTA PAL for Windows Simulator V1.0.2
- Rename variables to comply with style guidelines.

#### OTA PAL for CC3220SF-LAUNCHXL V1.0.1
- Rename variables to comply with style guidelines.

#### OTA Agent V1.0.1
- Rename variables to comply with style guidelines.

#### PKCS #11 PAL for Cypress CYW943907AEVAL1F development kit V1.0.0
- Added as part of Cypress CYW43907 board port. 
- Note that the random number generation solution in this port is provided for demonstration purposes only. See the comment in lib/pkcs11/portable/cypress/CYW943907AEVAL1F/hw_poll.c.

#### PKCS #11 PAL for Cypress CYW954907AEVAL1F development kit V1.0.0
- Added as part of Cypress CYW54907 board port.
- Note that the random number generation solution in this port is provided for demonstration purposes only. See the comment in lib/pkcs11/portable/cypress/CYW954907AEVAL1F/hw_poll.c

#### PKCS #11 PAL for ESP32-DevKitC ESP-WROVER-KIT V1.0.2
- Updated as part of Updrade to ESP-IDF to 3.1.1.

#### mbedTLS-based PKCS#11 V1.0.7
- Bug Fix: Multi-threaded use of PKCS #11 Sign/Verify could cause key corruption.

#### Wi-Fi for Cypress CYW943907AEVAL1F development kit V1.0.0
- Added as part of Cypress CYW43907 board port.

#### Wi-Fi for Cypress CYW954907AEVAL1F development kit V1.0.0
- Added as part of Cypress CYW54907 board port.

#### Wi-Fi for ESP32-DevKitC ESP-WROVER-KIT V1.0.1
- Update as part of Updrade to ESP-IDF to 3.1.1.

#### Wi-Fi for LPC54018 IoT Module V1.0.3
- Bug fix: Update WIFI init API to return success if WIFI module was already successfully initialized.
- Bug fix: Update WIFI AP connection API for NXP to check if DHCP was successful.

## V1.4.6 12/27/2018
### New Features

#### New Board: Renesas Starter Kit+ for RX65N-2MB
The Renesas Starter Kit+ for RX65N-2MB is now qualified for Amazon FreeRTOS. This port updates the PKCS #11 portable layer, demo projects, and tests.

### Updates

#### FreeRTOS+POSIX V1.0.2
- Improvement to reduce the size of a pthread object and make the object user allocatable from stack.

#### FreeRTOS+TCP V2.0.10
- Add FreeRTOS+TCP support for the Renesas Starter Kit+ for RX65N-2MB.

#### FreeRTOS Kernel V10.0.1
- Add FreeRTOS Kernel support for the Renesas Starter Kit+ for RX65N-2MB.

#### PKCS #11 PAL for MT7697Hx-Dev-Kit V1.0.1
- Update license information.

#### PKCS #11 PAL for Renesas Starter Kit+ for RX65N-2MB V1.0.0
- Add PKCS #11 support for the Renesas Starter Kit+ for RX65N-2MB. 
- Note that the random number generation solution in this port is provided for demonstration purposes only. See the comment in lib/third_party/mcu_vendor/renesas/amazon_freertos_common/entropy_hardware_poll.c for more information.

#### Wi-Fi for MT7697Hx-Dev-Kit V1.0.1
- Update license information.

## V1.4.5 12/13/2018
### New Features

#### New Board: MediaTek MT7697Hx-Dev-Kit
The MediaTek MT7697 System on Chip (SoC) is now qualified for Amazon FreeRTOS. You can take advantage of Amazon FreeRTOS features and benefits using the MediaTek MT7697Hx Development Kit available from MediaTek Labs.  This development board contains the MT7697 SoC, which includes an Arm Cortex-M4 MCU, low power 1T1R 802.11 b/g/n Wi-Fi, Bluetooth 4.2 subsystem and power management unit.

#### lwIP Support
Amazon FreeRTOS support for the MediaTek MT7697Hx-Dev-Kit includes for the first time support for the Lightweight TCP / IP network stack (lwIP). This flexibility will support customer choice in identifying the best TCP stack solution for IoT devices.

### Updates

#### FreeRTOS+TCP V2.0.9
- Update to flush ARP cache when then network is down.

#### mbedTLS-based PKCS#11 V1.0.6
- Delete extra include headers.

#### PKCS #11 PAL for MT7697Hx-Dev-Kit V1.0.0
- Add PKCS #11 support for the MediaTek MT7697Hx-Dev-Kit.

#### Secure Sockets for FreeRTOS+TCP V1.1.5
- Update documentation.

#### Secure Sockets for lwIP V1.0.0
- Add Secure Sockets support for lwIP.

#### Wi-Fi for Infineon XMC4800 IoT Connectivity Kit V1.0.1
- Update documentation.

#### Wi-Fi for MT7697Hx-Dev-Kit V1.0.0
- Add Wi-Fi support for the MediaTek MT7697Hx-Dev-Kit.

## V1.4.4 11/19/2018
### Updates

#### Device Defender Demo V1.4.4
- Remove warnings in Device Defender Demo build.

#### Microchip "OTA Demo" Factory Image Script
- Fix post-build command and python script for generating OTA factory image for Mac users.

#### Device Defender Agent V1.0.2
- Update formatting and build warnings.

#### OTA PAL for ESP32-DevKitC ESP-WROVER-KIT V1.0.2
- Fix bug in retrieving code signature verification certificate.

#### OTA PAL for Curiosity PIC32MZEF V1.0.2
- Fix bug in retrieving code signature verification certificate.

## V1.4.3 11/07/2018
### New Features

#### New Board: Xilinx Zynq-7000 based MicroZed Industrial IoT Bundle
- Update Amazon FreeRTOS with port files, demo projects, and tests for the Xilinx Zynq-7000 based MicroZed Industrial IoT Bundle

### Updates

#### mbedTLS Library
- Upgrade to mbedTLS version 2.13.1.

#### FreeRTOS+POSIX V1.0.1
- Minor bug fixes.

#### FreeRTOS+TCP V2.0.8
- Update the Zynq-7000 portable layer for receive descriptor alignment.

#### PKCS #11 Updates
Update mbedTLS-based PKCS #11, and PKCS #11 PAL. These changes have been made to more closely align with the PKCS #11 standard, respond to feedback from users and partners, and make it easy for users to go to production from a prototype.
Applications calling into PKCS #11 functions directly (rather than indirectly via an Amazon provided secure sockets or TLS layer) may experience breaking changes. 

##### mbedTLS-based PKCS #11
- C_Initialize handles initialization of randomness in an effort to minimize entropy generation (or seed access) every time sessions are created and destroyed.  To protect random values, thread safety has been enabled in mbedTLS.
- C_SignInit and C_VerifyInit utilize the key handle that is passed in, rather than the first key found in order to comply with the PKCS #11 standard
- C_FindObject APIs no longer instantiate keys from the aws_clientcredential_keys.h header file if keys are not found. This removes the dependency of PKCS #11 on values that will be unique per-device (a transition step for enabling production-scale provisioning). Note that calling vDevModeKeyProvisioning() is now necessary to provision the device.
- C_FindObject PKCS #11 objects can be looked up by CKA_LABEL, in order to provide a standard-compliant object lookup.  Note that pkcs11configFILE_NAME_* configurations have been removed from aws_pkcs11_config.h, see aws_pkcs11.h for pkcs11configLABEL_* defines to access labels, and aws_pkcs11_pal.c for pkcs11palFILE_NAME_* defines.
- C_FindObject and C_GetAttributeValue accept different attribute arguments.
- C_CreateObject requires DER encoded certificates and keys instead of PEM formatted and object attributes required for creating objects have changed.  Note that vDevModeKeyProvisioning() has been updated to supply required attributes and convert inputs from DER to PEM if necessary.
- C_GenerateKeyPair now stores keys in non-volatile memory.
- C_Finalize is no longer invoked by helper functions to prevent threads from interfering with each other's PKCS #11 instances.
- Some error codes have been changes to better match the PKCS #11 standard.
- aws_tls.c and PKCS #11 AFQP tests have updates to reflect these changes.
    - mbedTLS-based PKCS #11 V1.0.5
    - TLS V1.1.3

##### PKCS #11 PAL for mbedTLS-based PKCS #11
- Breaking changes were made to PAL PKCS #11 functions in order to transition from file-centric API to object handle and object label based API.
    - PKCS #11 PAL for ESP32-DevKitC ESP-WROVER-KIT V1.0.1
    - PKCS #11 PAL for XMC4800 IoT Kit V1.0.1
    - PKCS #11 PAL for Curiosity PIC32MZEF V1.0.4
    - PKCS #11 PAL for LPC54018 IoT Module V1.0.3
    - PKCS #11 PAL for Windows Simulator V1.0.3
    - PKCS #11 PAL for STM32L4 Discovery kit IoT node V1.0.3
    - PKCS #11 PAL for Xilinx Zynq MicroZed V1.0.0 (new)

##### PKCS #11 for CC3220SF-LAUNCHXL
- Updates to match behavior of mbedTLS-based PKCS #11. 
- mbedTLS added to support conversion between DER and PEM objects.  Note that after provisioning the device, mbedTLS and provisiong PKCS #11 functions may be removed to reduce code size.
    - PKCS #11 PAL for CC3220SF-LAUNCHXL V1.0.3

##### OTA PAL Updates
- The OTA PALs for the Curiosity PIC32MZEF and ESP32-DevKitC ESP-WROVER-KIT boards have been modified to utilize PKCS #11 API to retrieve code signing keys, rather than calling into PKCS #11 PAL functions. 
    - OTA PAL for Curiosity PIC32MZEF V1.0.1
    - OTA PAL for ESP32-DevKitC ESP-WROVER-KIT V1.0.1

#### Secure Socket for FreeRTOS+TCP V1.1.4
- Minor update to handle PKCS #11 error codes.
- Update formatting.

#### Secure Sockets for Infineon XMC4800 IoT Connectivity Kit V1.0.1
- Fix the license header from Secure Socket to Secure Sockets.

#### Secure Sockets for STM32L4 Discovery kit IoT node V1.0.0 Beta 4
- Bug fix to support Amazon Trust Services endpoints. For more information, please see https://aws.amazon.com/blogs/iot/aws-iot-core-ats-endpoints/.

#### Secure Sockets for CC3220SF-LAUNCHXL V1.0.5
- Remove duplicate file name definitions.  See aws_secure_sockets_config.h for file name defines.

#### Shadow V1.0.5
- Minor bug fixes.


## V1.4.2 10/17/2018
### New Features

#### New Board: Infineon XMC4800 IoT Connectivity Kit
Update Amazon FreeRTOS with port files, demo projects, and tests for the Infineon XMC4800 IoT Connectivity Kit.

### Updates

#### Update pthread Implementation in ESP-IDF
Incorporate an update to Espressif's ESP-IDF which improves the implementation of pthread.

#### Build Improvement: MPLAB PIC32 Projects
Resolve several warnings in the MPLAB project builds, and update the projects to no longer assume that the XC32 compiler is in the host computer's path.

#### Move Helper Utilities to the 'tools/' Directory
Move a few utilities to the root-level 'tools/' directory, from the 'tests/common/tools/' and 'demos/common/tools/' directories.

#### Styling Updates
Improve consistency of Hungarian Notation usage, update a number of methods to use 'void' instead of an empty argument list, and update the style guide.

#### New POSIX Functions
Add POSIX functions including `time`, `localtime_r`, and `strftime`.

#### Refactor Device Defender Direcory Structure
Update Device Defender code to use the same 'lib/' and 'include/' directory structures as the other libraries.

#### AFQP Documentation Updates
Update the Amazon FreeRTOS Qualification Program's documentation to reflect updated directory structures.

## V1.4.1 08/29/2018
### New Features
None

### Updates

#### OTA PAL for Windows Simulator V1.0.1
- Update Amazon FreeRTOS Windows Simulator to use ECDSA/SHA-256 for OTA image verification.


## V1.4.0 08/27/2018
### New Features

#### Demo Bootloader for Microchip Curiosity PIC32MZEF V1.0.0
The demo bootloader supports Amazon FreeRTOS over-the-air (OTA) update by implementing firmware version checking, cryptographic signature verification, and application self-test. The firmware verification includes verifying the authenticity and integrity of the new firmware received over the air. The bootloader verifies the cryptographic signature of the application before boot. The elliptic-curve digital signature algorithm (ECDSA) with SHA256 is used. The utilities provided can be used to generate a signed application that can be flashed on the device. This enables signature verification of the initial image.

### Updates

#### Over-the-air (OTA) updates
The over-the-air (OTA) updates feature of Amazon FreeRTOS is now generally available. The release includes enhancements to the OTA Agent and changes to the OTA Portable Abstraction Layer (PAL) interface.

#### OTA PAL for Curiosity PIC32MZEF V1.0.0
Update for API changes for OTA general availability release.

#### OTA PAL for Windows Simulator V1.0.0
Update for API changes for OTA general availability release.

#### OTA PAL for CC3220SF-LAUNCHXL V1.0.0
Update for API changes for OTA general availability release.

#### OTA PAL for Espressif ESP32 V1.0.0
Update for API changes for OTA general availability release.

#### OTA Agent V1.0.0
Enhancements and API changes for OTA general availability release.


## V1.3.2 08/21/2018
### New Features
None

### Updates

#### FreeRTOS+TCP 
- Multiple security improvements and fixes in packet parsing routines, DNS caching, and TCP sequence number and ID generation.
- Disable NBNS and LLMNR by default.
- Add TCP hang protection by default.

#### Secure Sockets for FreeRTOS+TCP 
- Improve security in Amazon FreeRTOS Secure Sockets usage of mbedTLS and ALPN.

We thank Ori Karliner of Zimperium zLabs Team for reporting these issues.


## V1.3.1 08/10/2018
### New Features
None

### Updates

#### OTA Beta Update
- Updates to OTA Beta to incorporate a new API for the OTA service. This API is not compatible with the  API used in the original OTA Beta released on Dec. 20th. 
- Add a "reference bootloader" for use in the OTA process. This bootloader is for use with the Microchip MCU.

#### Amazon FreeRTOS Qualification Program (AFQP) Update
- Update AFQP documentation. For more info on the changes to AFQP, reference the Revision History of the "Amazon FreeRTOS Qualification Program Developer Guide" in the "tests" directory.

#### Device Defender Update
- Add a demo to illustrate the operation of Device Defender for the Windows Simulator and Microchip PIC32MZEF MCU.

#### TI "Hello World" Build Failure Resolution
- Address an issue where the "Hello World" demo did not build with TI CCS 7.3 in AFR 1.3.0 when downloaded from OCW.


## V1.3.0 07/31/2018

### New Features

#### AFQP 1.0 Support
This release of AFR has support for vendors who wish to have their ports qualified for Amazon FreeRTOS through the Amazon FreeRTOS Qualification Program (AFQP). This is the first public release of AFQP tests and documentation. A new top level "tests" directory is added to support this functionality. AFQP documents are available in "tests" directory. [Learn more.](https://docs.aws.amazon.com/freertos/latest/userguide/freertos-qualification-program.html)

#### Device Defender 1.0 Support
AWS IoT Device Defender is an AWS IoT security service that allows users to audit the configuration of their devices, monitor connected devices to detect abnormal behavior, and to mitigate security risks. It gives you the ability to enforce consistent security policies across your AWS IoT device fleet and respond quickly when devices are compromised. Device side support of this feature is part of this release. Devices supported are WinSim and Microchip PIC32MZEF. [Learn more.](https://docs.aws.amazon.com/freertos/latest/userguide/afr-device-defender-library.html)

#### FreeRTOS+POSIX 1.0 Interface
This release includes version 1.0.0 of FreeRTOS+POSIX.  FreeRTOS+POSIX is a POSIX compatibility layer that allows existing POSIX applications to run without modifications of FreeRTOS.  This release supports POSIX threads, mutexes, barriers, condition variables, semaphores, message queues, clocks, timers, and error numbers.  While most of the POSIX functions are implemented and up to specification, limitations in the FreeRTOS kernel precluded the standard implementations of certain functions.  The functions which differ from the POSIX specification are identified in their header files. Currently, FreeRTOS+POSIX is only used by drivers of the TI CC3220SF.

### Updates

#### FreeRTOS Kernel V10.0.1
- Add Idle tick counter interface
- Rename posix/ to FreeRTOS_POSIX/

#### FreeRTOS+TCP V2.0.4
- Fix issues raised by the Coverity scan
    - Fix a typo ulRxWindowLength -> ulTxWindowLength in FreeRTOS_Sockets.c
    - Fix strncmp length in FreeRTOS_DNS.c
    - Fix styling in FreeRTOS_ARP.c
- Fix a spelling typo ";east" -> "least" (response from a pull request)
- Add auto check of network interfaces for WinSim

#### MQTT Agent V1.1.2
- Move MQTT metrics to agent

#### mbedTLS-based PKCS #11 V1.0.3
- Reduce the number of warnings generated

#### PKCS #11 for LPC54018 IoT Module V1.0.1
- Change project baudrate setting to resolve AFQP test failures

#### Secure Sockets for NXP54018_IoT_Module V1.0.0 Beta 3
- Update to latest NXP driver to address AFQP 1.0 test failures

#### Secure Sockets for STM32L4 Discovery kit IoT node V1.0.0 Beta 2
- Update to new Inventek driver to resolve AFQP 1.0 test failures

#### Wi-Fi for Curiosity PIC32MZEF V1.0.3
- Change Microchip network param to use a direct address instead of a section to reduce the size of the binary image to allow OTA to continue working.
- Reduce number of warnings generated.

#### Wi-Fi for LPC54018 IoT Module V1.0.1
- Add fixes for Demo and DHCP.

#### Wi-Fi STM32L4 Discovery kit IoT node V1.0.2
- Update for release of AFQP 1.0

#### Wi-Fi for CC3220SF-LAUNCHXL V1.0.2
- Update for release of AFQP 1.0

---------------------------------------------------------------------------------------

## V1.2.7 05/31/2018

- Update the Texas Instruments SimpleLink CC3220SF SDK from version 1.40.01.00 to version 2.10.00.04.
- Fix the MQTT Echo Demo (Hello World Demo) to avoid truncating received strings.
- Modify the Getting Started scripts to check if the AWS CLI is configured.

#### Secure Sockets for CC3220SF-LAUNCHXL V1.0.4
- Update comments for SimpleLink CC3220SF SDK version 2.10.00.04.

--------------

## V1.2.6 05/18/2018

- Fix NXP MCUXpresso project build failure on Linux.

----------------

## V1.2.5 05/14/2018

- Add support for Espressif's ESP32-DevKitC and ESP-WROVER-KIT.

#### FreeRTOS+TCP V2.0.4
 - Add Espressif ESP32 network interface support.

#### mbedTLS-based PKCS #11 V1.0.3
 - Implement C_DigestInit, C_DigestUpdate, and C_DigestFinal for SHA-256.
 - Implement C_GenerateKeyPair for non-persistent ECDSA P256.

#### PKCS #11 for ESP32-DevKitC ESP-WROVER-KIT V1.0.0
 - Add support for Espressif's ESP32-DevKitC and ESP-WROVER-KIT.

#### Wi-Fi STM32L4 Discovery kit IoT node V1.0.2
 - Bug fix to ensure that WIFI_ConnectAP() switches to the network parameters input,
      even when already connected to a different set.

#### Wi-Fi for ESP32-DevKitC ESP-WROVER-KIT V1.0.0
 - Add support for Espressif's ESP32-DevKitC and ESP-WROVER-KIT.

---------------------------------------------------------------------------------------

## V1.2.4 05/01/2018

 - Upgrade to mbedTLS version 2.8.
 - Add MCUXpresso IDE demo project for the NXP LPC54018 IoT Module.

#### Crypto V1.0.2
 - Minor updates due to mbedTLS crypto interface changes.

#### FreeRTOS+TCP V2.0.3
 - Fix a bug where re-transmission and duplicated TCP packets would create a
      computation underflow as well as a memory leak.
 - Add new public function FreeRTOS_UpdateMACAddress() to allow changing the MAC address
      after FreeRTOS_IPInit. Sometimes the device MAC address is not available at the
      time FreeRTOS_IPInit() is called, so it needs to be changed afterward.
 - Remove non-cryptographic rand() implementation.
 - Remove a static variable in functions prvGetHostByName() and prvCreateDNSSocket() to
      make them threadsafe.

#### Greengrass Discovery V1.0.3
 - Provide a helpful error message if the Greengrass Discovery JSON does not fit in
      the supplied buffer.

#### MQTT Agent V1.1.2
 - Bug fix to avoid socket leak if MQTT Connect fails after a successful TCP
      connection.
 - Add support for disabling subscription management feature by defining the macro
      mqttconfigENABLE_SUBSCRIPTION_MANAGEMENT as 0.

#### OTA PAL for Curiosity PIC32MZEF V0.9.1
 - Update for PKCS #11 PAL layer API changes.

#### OTA PAL for Windows Simulator V0.9.2
- Minor restructuring of file locations.

#### OTA PAL for CC3220SF-LAUNCHXL V0.9.3
 - Minor changes to enable test integration.

#### OTA Agent V0.9.4
 - Minor restructuring of file locations.

#### mbedTLS-based PKCS #11 V1.0.2
 - Combine the mbedTLS based PKCS #11 implementation from Curiosity PIC32MZEF,
      LPC54018 IoT Module, Windows Simulator, and STM32L4 Discovery kit IoT node into a
      single file.
 - Add support for public key verification of signatures.
 - Fix to free context structures on session failure.
 - Update C_OpenSession to use CKF_SERIAL_SESSION flag.

#### PKCS #11 for Curiosity PIC32MZEF V1.0.2
 - Create port specific functions for certificate and key access:
      PKCS11_PAL_SaveFile(), PKCS11_PAL_ReadFile(), PKCS11_PAL_ReleaseFileData().

#### PKCS #11 for LPC54018 IoT Module V1.0.1
 - Create port specific functions for certificate and key access:
      PKCS11_PAL_SaveFile(), PKCS11_PAL_ReadFile(), PKCS11_PAL_ReleaseFileData().

#### PKCS #11 PAL for Windows Simulator V1.0.2
 - Create port specific functions for certificate and key access:
      PKCS11_PAL_SaveFile(), PKCS11_PAL_ReadFile(), PKCS11_PAL_ReleaseFileData().

#### PKCS #11 for STM32L4 Discovery kit IoT node V1.0.1
 - Create port specific functions for certificate and key access:
      PKCS11_PAL_SaveFile(), PKCS11_PAL_ReadFile(), PKCS11_PAL_ReleaseFileData().

#### PKCS #11 for CC3220SF-LAUNCHXL V1.0.2
 - PKCS #11 implementation for TI based on mbedTLS moved into this file.

#### Secure Socket for FreeRTOS+TCP V1.1.2
 - Combine Secure Sockets implementation for Curiosity PIC32MZEF and Windows
      Simulator into a single file.
 - Fix return value of SOCKETS_Socket on error.
 - Attempting to create an unsupported UDP socket now triggers an assert.
 - Add cryptographic random number generator function for TCP sequence numbers.
 - Update the Socket structure to keep track of a connection attempt and added
      support of the ECONN error.

#### Secure Sockets for LPC54018 IoT Module V1.0.0 Beta 3
 - Fix minor bug in SOCKETS_Recv().

#### Secure Sockets for STM32L4 Discovery kit IoT node V1.0.0 Beta 2
 - Fix return value of SOCKETS_Close on error.

#### Secure Sockets for CC3220SF-LAUNCHXL V1.0.3
 - Secure sockets printing is now controlled independently using the SOCKETS_PRINT
      macro. SOCKETS_PRINT prints TI driver error codes.

#### Shadow V1.0.3
 - Change names of configuration constants to be consistent with FreeRTOS style.

#### TLS V1.1.1
 - Support AWS IoT Just-in-Time Registration (JITR) by sending optional
      client-issuer certificate.
 - Use CKF_SERIAL_SESSION flag with PKCS #11.

#### Wi-Fi for Curiosity PIC32MZEF V1.0.3
 - Update for setting the MAC Address in WIFI_On() by using new FreeRTOS+TCP
      function FreeRTOS_UpdateMACAddress().
 - Redefine printing and assert stubs used in the Wi-Fi driver code.
 - Add implementation of WIFI_GetMAC().
 - Add implementation of WIFI_IsConnected().
 - Minor bug fixes.

#### Wi-Fi for LPC54018 IoT Module V1.0.2
 - Add implementation of WIFI_IsConnected().
 - Fix max DNS name length redefinition.
 - Fix compiler errors in MCUXpresso IDE.
 - Minor bug fixes.

#### Wi-Fi STM32L4 Discovery kit IoT node V1.0.1
 - Add implementation of WIFI_IsConnected().
 - Add NULL pointer checks throughout.
 - Minor bug fixes.

#### Wi-Fi for CC3220SF-LAUNCHXL V1.0.2
 - Add implementation of WIFI_IsConnected().
 - Add NULL pointer checks throughout.
 - Minor bug fixes.

---------------------------------------------------------------------------------------

## V1.2.3 03/29/2018
 - Fix TI IAR project build failure.

---------------------------------------------------------------------------------------

## V1.2.2 02/27/2018

#### OTA Agent V0.9.3
 - Formatting update.

#### OTA PAL for Curiosity PIC32MZEF V0.9.0
 - Beta release of the OTA Update support for the Microchip Curiosity PIC32MZEF.

#### PKCS #11 for Curiosity_PIC32MZEF V1.0.1
 - Add support for the management of OTA update code signing keys.

#### Wi-Fi for Curiosity PIC32MZEF V1.0.1
 - Update to conditionally compile the entire file.

---------------------------------------------------------------------------------------

## V1.2.1 02/23/2018

 - Add an IAR IDE demo project for the Texas Instruments CC3220SF-LAUNCHXL.
 - Add Wi-Fi support for the Microchip Curiosity PIC32MZEF.

#### FreeRTOS+TCP V2.0.2
 - Improve NULL variable check in buffer management.

#### MQTT Agent V1.1.1
 - Minor bug fix checking for a NULL pointer.

#### OTA Agent V0.9.2
 - Update to support NULL OTA file handles.

#### Amazon FreeRTOS OTA PAL for CC3220SF-LAUNCHXL V0.9.2
 - Update to support NULL OTA file handles.

#### PKCS #11 for CC3220SF-LAUNCHXL V1.0.1
 - Add a dummy variable to a previously empty structure to fix IAR compiler errors.

#### Secure Socket for Windows Simulator V1.1.1
 - Formatting update.

#### Secure Sockets for CC3220SF-LAUNCHXL V1.0.2
 - Update to print SimpleLink driver-specific error codes when debugging.
 - Add error handling for non-blocking sockets.
 - Update socket option to return an error if security options are specified after
      a connection.

#### Wi-Fi for Curiosity PIC32MZEF V1.0.1
 - Update such that Wi-Fi disconnection waits until the link is down before
      returning.

#### Wi-Fi for CC3220SF-LAUNCHXL V1.0.1
 - Fix error in attempting to overwrite a const memory.

---------------------------------------------------------------------------------------

## V1.2.0 02/06/2018

#### Greengrass Discovery V1.0.2
 - Update to send all data until an error is received.

#### MQTT Agent V1.1.0
 - Add support for ALPN. ALPN allows MQTT traffic to be sent to
      the AWS IoT broker over port 443 instead of 8883.

#### OTA Agent V0.9.1
 - Send a FAILED status from agent when a file too large for the platform
      is received.
 - Rename some files.

#### PKCS #11 for Windows Simulator
 - Add developer mode key provisioning support.

#### Secure Socket for Curiosity PIC32MZEF V1.0.1
 - Add support for ALPN.

#### Secure Socket for Windows Simulator V1.1.0
 - Add support for ALPN.

#### Secure Sockets for CC3220SF-LAUNCHXL V1.0.1
- Remove unnecessary server certificate storage on the client side.
- Remove unnecessary global synchronization semaphore.
- Update for other small bugs.

#### Shadow V1.0.2
- Fix error handling bugs.
- Require client tokens.
- Update for other small bugs.

#### TLS V1.1.0
- Add support for ALPN.

---------------------------------------

## V1.1.0 12/20/2017

#### Crypto V1.0.1
- Fix compiler warning for the Microchip Curiosity PIC32MZEF.

#### FreeRTOS+TCP V2.0.1
- Add support for the Microchip Curiosity PIC32MZEF.

#### FreeRTOS Kernel V10.0.1
- Minor bug fixes to allow Linux and C++ builds.

#### Greengrass Discovery V1.0.1
- Reformat console display messages in order to better facilitate demos and debugging.

#### MQTT Agent V1.0.1
- The MQTT Agent now processes commands between successive socket reads to       enable faster command handling, especially when the connected socket is       receiving data continuously.

#### OTA Agent V0.9.0
- Beta release of OTA Update library for Amazon FreeRTOS. Includes support   for the Texas Instruments CC3220SF-LAUNCHXL and Windows Simulator.

#### PKCS #11 for Curiosity PIC32MZEF V1.0.0 Beta 1
- Add support for the Microchip Curiosity PIC32MZEF.

#### Secure Socket for Curiosity PIC32MZEF V1.0.0
- Add support for the Microchip Curiosity PIC32MZEF.

#### Secure Sockets for LPC54018 IoT Module V1.0.0 Beta 2
- Fix bugs in the Secure Sockets implementation for the NXP LPC54018 IoT       Module.

#### Shadow V1.0.1
- Fix compiler warning for the Microchip Curiosity PIC32MZEF.

#### Wi-Fi for LPC54018 IoT Module V1.0.1
- Change the Wi-Fi Connection timeout to 10 seconds.