-
Notifications
You must be signed in to change notification settings - Fork 0
/
readme.txt
2696 lines (2605 loc) · 146 KB
/
readme.txt
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
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
*****************************************************************************
*** Files Organization ***
*****************************************************************************
--{root} - ChibiOS/RT directory.
+--readme.txt - This file.
+--documentation.html - Shortcut to the web documentation page.
+--todo.txt - Current plan (development/unstable versions only).
+--license.txt - GPL license text.
+--exception.txt - GPL exception text (stable releases only).
+--boards/ - Board support files.
+--demos/ - Demo projects.
+--docs/ - Documentation.
| +--html/ - Local HTML documentation (after rebuild).
| +--reports/ - Test reports.
| +--src/ - Documentation source files (required for rebuild).
| +--rsc/ - Documentation resource files (required for rebuild).
| +--Doxyfile - Doxygen project file (required for rebuild).
| +--index.html - Local documentation access (after rebuild).
+--ext/ - External libraries, not part of ChibiOS/RT.
+--os/ - ChibiOS/RT files.
| +--hal/ - Hardware Abstraction Layer.
| | +--include/ - HAL high level headers.
| | +--src/ - HAL high level source.
| | +--platforms/ - HAL low level drivers implementations.
| | | +--AT91SAM7/ - Drivers for AT91SAM7 platform.
| | | +--AVR/ - Drivers for AVR platform.
| | | +--LPC11Uxx/ - Drivers for LPC11Uxx platform.
| | | +--LPC11xx/ - Drivers for LPC11xx platform.
| | | +--LPC13xx/ - Drivers for LPC13xx platform.
| | | +--LPC214x/ - Drivers for LPC214x platform.
| | | +--LPC8xx/ - Drivers for LPC8xx platform.
| | | +--MSP430/ - Drivers for MSP430 platform.
| | | +--SPC5xx/ - Drivers for all SPC5xx platform (common).
| | | +--SPC560BCxx/ - Drivers for SPC560BCxx platform.
| | | +--SPC560Pxx/ - Drivers for SPC560Pxx platform.
| | | +--SPC563Mxx/ - Drivers for SPC563Mxx platform.
| | | +--SPC564Axx/ - Drivers for SPC564Axx platform.
| | | +--SPC5ELxx/ - Drivers for SPC56ELxx platform.
| | | +--STM32/ - Drivers for STM32 platform (common).
| | | +--STM32F0xx/ - Drivers for STM32F0xx platform.
| | | +--STM32F1xx/ - Drivers for STM32F1xx platform.
| | | +--STM32F30x/ - Drivers for STM32F30x platform.
| | | +--STM32F37x/ - Drivers for STM32F37x platform.
| | | +--STM32F4xx/ - Drivers for STM32F4xx/STM32F2xx platforms.
| | | +--STM32L1xx/ - Drivers for STM32L1xx platform.
| | | +--STM8L/ - Drivers for STM8L platform.
| | | +--STM8S/ - Drivers for STM8S platform.
| | | +--Posix/ - Drivers for x86 Linux/OSX simulator platform.
| | | +--Win32/ - Drivers for x86 Win32 simulator platform.
| | +--templates/ - Driver template files.
| | +--meta/ - Driver meta templates.
| +--ports/ - Port files for the various architectures.
| | +--GCC/ - Ports for the GCC compiler.
| | | +--ARM/ - Port files for ARM7 and ARM9 architectures.
| | | +--ARMCMx/ - Port files for ARMCMx architectures (ARMv6/7-M).
| | | +--PPC/ - Port files for PowerPC architecture.
| | | +--AVR/ - Port files for AVR architecture.
| | | +--MSP430/ - Port files for MSP430 architecture.
| | | +--SIMIA32/ - Port files for SIMIA32 simulator architecture.
| | +--IAR/ - Ports for the IAR compiler.
| | | +--ARMCMx/ - Port files for ARMCMx architectures (ARMv6/7-M).
| | | +--STM8/ - Port files for STM8 architecture.
| | +--RVCT/ - Ports for the Keil RVCT compiler.
| | | +--ARMCMx/ - Port files for ARMCMx architectures (ARMv6/7-M).
| | +--cosmic/ - Ports for the Cosmic compiler.
| | | +--STM8/ - Port files for STM8 architecture.
| | +--RC/ - Ports for the Raisonance compiler.
| | +--STM8/ - Port files for STM8 architecture.
| +--kernel/ - Kernel portable files.
| | +--include/ - Kernel headers.
| | +--src/ - Kernel source.
| | +--templates/ - Kernel port template files.
| +--various/ - Various portable support files.
+--test/ - Kernel test suite source code.
| +--coverage/ - Code coverage project.
+--testhal/ - HAL integration test demos.
| +--LPC11xx/ - LPC11xx HAL demos.
| +--LPC13xx/ - LPC11xx HAL demos.
| +--STM32F1xx/ - STM32F1xx HAL demos.
| +--STM32F4xx/ - STM32F4xx HAL demos (valid for STM32F2xx too).
| +--STM32L1xx/ - STM32L1xx HAL demos.
| +--STM8S/ - STM8S HAL demos.
+--tools - Various tools.
+--eclipse - Eclipse enhancements.
*****************************************************************************
*** Releases ***
*****************************************************************************
*** 2.7.0 ***
- FIX: Fixed possible unalignment in GCC Cortex-M scatter files (bug #430)
(backported to 2.6.2 and 2.4.6).
- FIX: Fixed PAL driver documentation error (bug #427)(backported to 2.6.1
and 2.4.5).
- FIX: Fixed UART4 and 5 marked as not present in STM32F30x devices (bug #426)
(backported to 2.6.1).
- FIX: Fixed warning in STM32 ICU/PWM drivers when used on STM32F3xx
(bug #425)(backported to 2.6.1).
- FIX: Fixed conditional code error in STM32 PWM driver (bug #424)(backported
to 2.6.1).
- FIX: Fixed error in Guards of pwm_lld.h from STM32 (bug #423)(backported to
2.6.1).
- FIX: Fixed wrong RTC macro names in STM32L1xx HAL (bug #422)(backported to
2.6.1 and 2.4.5).
- FIX: Fixed CodeSourcery personal version fails to build with undefined
errno_r (bug #421)(backported to 2.6.1).
- FIX: Fixed FSMC reset on STM32F4xx (bug #420)(backported to 2.6.1 and 2.4.4).
- FIX: Fixed invalid directory links in the demo files (bug #419)(backported
to 2.6.1).
- FIX: Fixed missing casts in time-conversion macros (bug #418)(backported
to 2.6.1, 2.4.4 and 2.2.10).
- FIX: Fixed PLL2 activation condition is wrong in STM32F107 HAL (bug #417)
(backported to 2.6.1 and 2.4.4).
- FIX: Fixed STM32 Serial (v2) driver invalid CR registers size (bug #416)
(backported to 2.6.0).
- FIX: Fixed MS2ST() and US2ST() macros error (bug #415)(backported to 2.6.0,
2.4.4, 2.2.10, NilRTOS).
- NEW: Added support for STM32F0xx platform in RTCv2 driver.
- NEW: Improvements to the STM32F4xx backup domain initialization.
- NEW: Added initializer for the DIER register to the STM32 GPT, ICU and
PWM drivers.
- NEW: Added support for 32bits counters to the STM32 GPT driver.
- NEW: Added support for STM32F4xx backup RAM.
- NEW: Added port support for SCP560B64.
- NEW: Added DAC driver high level files and low level files templates.
- NEW: Added support of UART4 and UART5 (STM32F4x and STM32F2x platforms)
(feature request #28).
- NEW: SPI driver for SPC560Pxx, SPC563Mxx, SPC564Axx, SPC56ELAxx, SPC560Dxx.
- NEW: Support for SPC560Dxx devices.
- NEW: DMA-MUX support for SPC5xx devices.
- CHANGE: Moved the STM32 GPT, ICU and PWM low level drivers under
./os/hal/platform/STM32/TIMv1. Updated all the impacted project files.
*** 2.5.2 ***
- FIX: Fixed lwipthread.h should explicitly include lwip/opts.h (bug #414).
- FIX: Fixed STM32_PLLI2SCLKOUT miscalculated (bug #413)(backported to 2.4.4).
- FIX: Fixed wrong RTC vector name in STM32F1/F4/L1 EXT drivers (bug #412).
- FIX: Fixed fill character error in chprintf (bug #411).
- FIX: Fixed wrong STM32 USBv1 driver behavior (bug #410).
- FIX: Fixed STM32 wrong peripherals reset procedure (bug #409)(backported
to 2.4.4).
- FIX: Fixed STM32 SPIv2 polled exchange (bug #372).
- FIX: Fixed wrong macro in PWM driver (bug #407)(backported to 2.4.4).
- FIX: Fixed USB driver possible deadlock under certain configurations (bug
#406)(backported to 2.4.4).
- FIX: Fixed USB driver cannot be stopped (bug #405)(backported to 2.4.4).
- FIX: Fixed several spelling errors (bug #404).
- FIX: Fixed serial port in STM32F3 discovery test case (bug #402).
- FIX: Fixed add %i to chprintf (bug #401).
- FIX: Fixed STM32F051 various (bug #400).
- FIX: Fixed STM32F103 HSI configuration (bug #399).
- FIX: Fixed patch to allow simulator to be restarted quicker (bug #398).
- FIX: Fixed blkDisconnect macro typo (bug #397).
- FIX: Fixed STM32 SPI (V2) driver hangs (bug 3608241).
- FIX: Fixed fixed I2C malfunction after fixing bug 3607518 (bug 3607549)
(backported to 2.4.4).
- FIX: Fixed spurious interrupt disabling an STM32 DMA stream (bug 3607518)
(backported to 2.4.4).
- FIX: Fixed start of any ADC disables VREF and VBAT (bug 3607467)
(backported to 2.4.4).
- FIX: Fixed surprising non-CRLF lines in source (bug 3607380).
- FIX: Fixed no entry point defined at link time (bug 3607319).
- FIX: Fixed sdc_lld_collect_errors does not collect errors (bug 3606743).
- FIX: Fixed STM32 CAN broadcast typo (bug 3606675).
- FIX: Fixed STM32 CAN mailbox receive for second fifo (bug 3606673).
- FIX: Fixed CAN_USE_SLEEP_MODE compilation problem (bug 3606616)(backported
to 2.4.4)(backported to 2.2.10).
- FIX: Fixed missing HSE bypass option for STM32F103 (bug 3606274).
- FIX: Fixed misplaced brace in icu_lld.c (bug 3605832)(backported to 2.4.4).
- FIX: Fixed errors in MMC_SPI driver state machine (bug 3605794).
- FIX: Fixed deadlock in Serial_USB driver (bug 3605793).
- FIX: Fixed compile Error OLIMEX_SAM7_EX256/board.c (bug 3605058).
- FIX: Fixed bug prevents calling adcStartConversionI() within ISR (bug
3605053)(backported to 2.4.4).
- FIX: Fixed typo in platforms/STM32/can_lld.c (bug 3604657)(backported
to 2.4.4).
- FIX: Added board files and demo for "WaveShare Open STM32F4 207I-C / 407I-C".
Added ULPI support to the STM32 USB (OTG-HS) driver.
Contributed by Dave Camarillo (bug 3603362).
- FIX: Fixed adcSTM32EnableTSVREFE must be called AFTER adcStart (bug
3602950).
- FIX: Fixed duplicated code in hal_lld.h (STM32F4xx) (bug 3602544)
(backported to 2.4.4).
- FIX: Fixed #define typo in usb_lld.h (OTGv1) (bug 3602306).
- FIX: Fixed STM32F0 RCC enable/disable/reset functions for CRC and WWDG
(bug 3602150).
- FIX: Fixed missing parenthesis in use of macro arguments (bug 3601638).
- FIX: Fixed compile errors in Posix-GCC demo (bug 3601621)(backported
to 2.4.4).
- FIX: Fixed state checker error in MSP430 port (bug 3601460)(backported
to 2.4.4).
- FIX: Fixed wrong assertion in UART driver (bug 3600789)(backported
to 2.4.4).
- FIX: Fixed small bug in shell argument parsing code in shell_thread (bug
3599328)(backported to 2.4.4).
- FIX: Fixed wrong condition in checksum offload of STM32 MAC driver (bug
3598720)(backported to 2.4.4).
- FIX: Fixed error in STM32 MAC driver degrades performance (bug 3598719)
(backported to 2.4.4).
- FIX: Fixed warning in STM32 ICU driver using IAR compiler (bug 3598177)
(backported to 2.4.3).
- FIX: Fixed wrong SPI path in platform_f105_f107.mk (bug 3598151).
- FIX: Fixed PHY powerdown issues not fixed (bug 3596911).
- NEW: Added new pwmIsChannelEnabledI() API to the PWM driver, implemented
in the STM32 driver.
- NEW: Added support for timers 6, 7, 9, 11, 12, 14 to the STM32 GPT driver.
- NEW: Added support for timer 9 to the STM32 PWM and ICU drivers.
- NEW: Relicensed parts of the distribution tree under the Apache 2.0
license in order to make specific parts of the code more accessible
to the open source community and adopters.
- NEW: Added ADC(EQADC), HAL, ICU, PAL, PWM, Serial drivers for SPC5xx
platforms, tests to be added on the various sub-families.
- NEW: Added support for SPC56ELxx, SPC560BCxx, SPC560Pxx, SPC560Mxx and
SPC564Axx platforms.
- NEW: Added ADC/SDADC driver for the STM32F37x family.
- NEW: Added support for the STM32F37x family.
- NEW: Now the general documentation includes data extracted from the low
level driver templates. Per-platform/architecture documents are no more
required and will be replaced with technical articles and examples for
each specific driver.
- NEW: Added a build test project for low level device driver templates.
- NEW: Enhanced CAN driver model, support for mailboxes has been added. STM32
driver implementation upgraded.
- NEW: Added ADC and PWM drivers for the AT91SAM7 platform, both donated
by Andrew Hannam.
- NEW: Added kernel support for the SAM4L, an Atmel Studio 6 demo for the
SAM4L-EK board has been added.
- NEW: Added an abstract file system interface written in C++, no
implementations yet.
TODO: Create a descendant interface for hierarchical file systems.
TODO: Create a FatFS wrapper implementing the interface and using a server
thread for synchronization.
TODO: Create an implementation over a read-only file system in code space.
- NEW: CAN2 support for STM32 added.
- NEW: Updated STM32L1xx header to the latest version.
- NEW: Added an option to lwipthread to change the link status poll interval.
- NEW: Added new C++ demo for the STM32F4-Discovery.
- NEW: Updated C++ wrapper with a much more logical classes structure.
TODO: Opdate older C++ demos.
- NEW: ADC driver implementation for the STM32F3xx, the driver supports also
the dual-ADC mode allowing for a very high combined bandwidth.
- NEW: Added zero-copy capability to the STM32 MAC driver (experimental and
not tested yet).
- NEW: Added an optional zero-copy mode API to the MAC driver model.
- NEW: Added EXT driver to the STM32F3xx platform.
- NEW: Improved the STM32 EXT driver to support more than 32 channels.
- NEW: Added support for Olimex board STM32-LCD.
- CHANGE: Removed dependency between crt0.c (GCC-ARMCMx) and the kernel
header ch.h.
*** 2.5.1 ***
- FIX: Fixed typo in chOQGetEmptyI() macro (bug 3595910)(backported to 2.2.10
and 2.4.3).
- FIX: Fixed possible false detect of loaded prescaler in RTCv1 driver (bug
3595489)(backported to 2.4.3).
- FIX: Fixed unneeded RTC initialization when HAL_USE_RTC disabled
(bug 3594620)(backported to 2.4.3).
- FIX: Fixed compilation issue with HAL_USE_RTC disabled (bug 3594083)
(backported to 2.4.3).
- FIX: Fixed wasting of BKP registers in RTCv1 driver (bug 3594005)(backported
to 2.4.3).
- FIX: Fixed potential problem with RTC_CRL_RSF bit (bug 3593972)(backported
to 2.4.3).
- FIX: Fixed STM32F1x rtc_lld_init not functional (bug 3592817)(backported
to 2.4.3).
- FIX: Fixed DMA reconfiguration problem in STM32 SPI driver (bug 3592809)
(backported to 2.4.3).
- FIX: Fixed STM32 UART driver redundant initialization (bug 3592764)
(backported to 2.4.3).
- FIX: Fixed wrong stack initializations in GCC STM32L1xx port files (bug
3591321)(backported to 2.4.3).
- FIX: Fixed different redefinition for __main_stack_end__ symbol (bug
3591317)(backported to 2.4.3).
- FIX: Fixed errors in STM32F0xx UART driver (bug 3589412)(backported
to 2.4.3).
- FIX: Fixed MSP430 port_switch code for MSPGCC issue (bug 3587633)(backported
to 2.4.3).
- FIX: Fixed workaround for errata in STM32F4-A devices (bug 3586425)
(backported to 2.4.3).
- FIX: Fixed error in palWritePad() macro (bug 3586230)(backported to 2.2.10
and 2.4.3).
- FIX: Fixed missing ; in testmbox.c (bug 3585979)(backported to 2.4.3).
- FIX: Fixed STM32F4xx: Wrong CAN1 SCE interrupt number definition (bug
3581571).
- FIX: Fixed STM32_P407: implement mmc_lld_is_card_inserted (bug 3581929)
(backported to 2.4.3).
- FIX: Fixed double chSysInit() call in MSP430F1611 demo (bug 3581304)
(backported to 2.2.10 and 2.4.3).
- FIX: Fixed patch for various demos (bug 3579734).
- FIX: Fixed bug in abstract file interface (bug 3579660)(backported to
2.2.10 and 2.4.3).
- FIX: Fixed wrong type for UART config registers (bug 3579434).
- FIX: Fixed various typos and wrong limits in the STM32F4/F2 HAL driver
(bug 3578944)(backported to 2.4.3).
- FIX: Fixed ARM CMx crt0.c fails at low optimization levels (bug 3578927)
(backported to 2.4.3).
- FIX: Fixed compilation issue in chregistry.c (bug 3576776).
- FIX: Fixed compilation issue in syscalls.c (bug 3576771)(backported
to 2.4.3).
- FIX: Fixed Typos in STM32F0xx EXT driver (bug 3576193).
- FIX: Fixed STM32F10X_CL: Wrong CAN1 interrupt number definitions (bug
3575766).
- FIX: Fixed superfluous pack #defines cause nasty warning (bug 3575662)
(backported to 2.4.3).
- FIX: Fixed mac.c won't compile due to misplaced declarations (bug 3575657)
(backported to 2.4.3).
- FIX: Fixed STM32F4 ADC prescaler incorrectly initialized (bug 3575297)
(backported to 2.4.3).
- FIX: Fixed RCC_APB2ENR_IOPEEN undeclared on STM32F10X_LD_VL devices (bug
3575098)(backported to 2.4.3).
- FIX: Fixed misplaced declarations in lwip_bindings sys_arch.c (bug 3571053)
(backported to 2.4.3).
- FIX: Fixed double definition of sd1fel and sd2fel breaks Posix simulator
(bug 3570532).
- FIX: Fixed Ethernet PHY power down scheme prevents using LAN8720A (bug
3570335).
- FIX: Fixed FatFS won't compile with _FS_REENTRANT enabled (bug 3570135)
(backported to 2.4.3).
- FIX: Fixed mmc_spi.c won't compile due to misplaced declaration (bug
3570035)(backported to 2.4.3).
- FIX: Fixed problem in STM32F1xx USB driver after revision 4598 (bug 3569374).
- FIX: Fixed GPIO glitch during PAL initialization (bug 3569347)(backported
to 2.4.3).
- FIX: Fixed FatFS timestamp incorrect (bug 3568626).
- FIX: Fixed Data available event not generated in serial_usb driver (bug
3567992).
- FIX: Fixed STM32F1x rtc_lld_init glitches rtc on hard reset (bug 3567597)
(backported to 2.4.3).
- FIX: Fixed STM8L, cosmic compiler: c_lreg not saved (bug 3566342)(backported
to 2.2.10 and 2.4.3).
- NEW: Initial support for STM32F30x (HAL, PAL, CAN, GPT, ICU, PWM, Serial,
SPI, UART, USB).
- NEW: AT91SAM7A3 I2C support.
- NEW: AT91SAM7A3 basic support.
- NEW: Unified the STM32F4xx and STM32F2xx platform code. The STM32F2xx now is
only supported as an STM32F4xx variant and not tested separately.
- NEW: Updated STM32F1, F2, F4, L1 ADC drivers to allow HW triggering.
- NEW: Added a new option STM32_ETH1_CHANGE_PHY_STATE to the STM32 MAC driver,
this change is connected to bug 3570335.
- NEW: Modified the CAN drivers to use the new event flags mechanism, the
previous flags handling has been removed.
- NEW: Modified serial and serial_usb drivers to use the new event flags
mechanism, the previous flags handling in BaseAsynchronousChannel has
been removed.
- NEW: Improved the kernel events subsystem, now event sources can associate
source-specific flags to the listener, the flags can then be retrieved
using the new APIs chEvtGetAndClearFlags() and chEvtGetAndClearFlagsI().
Some old APIs have been renamed to increase consistency of the module.
- NEW: Added VLE support to the Power Architecture GCC port.
- NEW: Reorganized the Power Architecture GCC port along the lines of the
ARMCMx port, now it can support multiple core types.
- NEW: Updated the Power Architecture rules.mk file to put object and listing
files into a ./build directory like ARM ports already do.
- CHANGE: The STM32 Serial driver has been split in two distinct versions,
one for older devices up the STM32F4xx, the other for new devices starting
from the STM32F0xx.
(TODO: Update IAR and Keil projects because different paths, update
documentation projects).
*** 2.5.0 ***
- FIX: Fixed anomaly in USB enumeration (bug 3565325)(backported to 2.4.3).
- FIX: Fixed problem with lwIP statistics (bug 3564134)(backported to 2.4.3).
- FIX: Fixed packed structures macros not functional in IAR and RVCT port
(bug 3561279)(backported to 2.4.3 and 2.2.10).
- FIX: Fixed Problem in FatFs demos related to LFN (bug 3560980)(backported
to 2.4.3 and 2.2.10).
- FIX: Fixed problem in STM32 DMA1 stream1 IRQ handler (bug 3538468)
(backported to 2.4.2).
- FIX: Fixed TIM8 not working in STM32 GPT driver (bug 3536523)(
- FIX: Fixed wrong priority assigned to TIM8 in STM32 ICU driver (bug 3536950)
(backported to 2.4.2).
- FIX: Fixed TIM8 not working in STM32 GPT driver (bug 3536523)(backported
to 2.4.2).
- FIX: Fixed timer overflow not working in STM32 ICU driver for TIM1/TIM8 (bug
3536522)(backported to 2.4.2).
- FIX: Fixed wrong DMA channels on USART2 in STM32F10X_MD_VL devices (bug
3536070)(backported to 2.4.2).
- FIX: Fixed issue with DMA channel init in STM32 ADC and SPI drivers (bug
3535938)(backported to 2.2.10 and 2.4.2).
- FIX: Fixed issue debugging mmc_spi (bug 3535887)(trunk only).
- FIX: Fixed unreliable PHY initialization (bug 3534819)(backported to 2.4.2).
- FIX: Fixed wrong ADC callback buffer pointer in ADC driver (bug 3534767)
(backported to 2.2.10 and 2.4.2).
- FIX: Fixed STM32F2 RTC subseconds (bug 3533414)(trunk only).
- FIX: Fixed problem with arm-v6m and state checker (bug 3532591)(backported
to 2.4.2).
- FIX: Fixed wrong MAC divider setting in STM32 MAC driver (bug 3531290)
(backported to 2.4.2).
- FIX: Fixed wrong MCO1 divider in STM32F2/F4 HAL (bug 3531289)(backported
to 2.4.2).
- FIX: Fixed missing "break" in AVR PAL driver (bug 3530924)(backported
to 2.4.2).
- FIX: Fixed timeout related race condition in STM32 I2C driver (bug 3530043)
(backported to 2.4.2).
- FIX: Fixed wrong macro check in STM32 MAC driver (bug 3527179)(backported
to 2.4.2).
- FIX: Fixed error in STM32L-Discovery board.h file (bug 3526918)(backported
to 2.4.2).
- FIX: Fixed inconsistent LPCxxx Internal RC oscillator names (bug 3524138)
(backported to 2.2.10 and 2.4.1).
- FIX: Fixed wrong frequency limit checks vs VDD in STM32F2xx HAL (bug 3524094)
(backported to 2.4.1).
- FIX: Fixed STM32 I2C1 wrong alternate TX DMA setting (bug 3524088)
(backported to 2.4.1).
- FIX: Fixed system state check problem related to FatFS (bug 3523769).
- FIX: Fixed three testhal builds fail (bug 3523322)(backported to 2.4.1).
- FIX: Fixed MAC driver functions with invalid name (bug 3522808)(backported
to 2.2.10 and 2.4.1).
- FIX: Fixed code coverage crashes with Linux/gcc-4.4.5 (bug 3522301)
(backported to 2.4.1).
- FIX: Fixed macro dmaWaitCompletion() fails to compile in STM32 HAL (bug
3519202)(backported to 2.4.1).
- FIX: Fixed ARM addresses generated in vectors table (bug 3519037)(backported
to 2.2.10 and 2.4.1).
- FIX: Fixed missing serial driver functionality for SAM7S64, SAM7S128 and
SAM7S512 (bug 3517648)(backported to 2.2.10 and 2.4.1).
- FIX: Fixed a few more spelling fixes (bug 3515531)(backported to 2.4.1).
- FIX: Fixed spurious ) char in STM32 serial_lld.h (bug 3514138)(backported
to 2.2.10 and 2.4.1).
- FIX: Fixed problem with FPU initialization in GCC Cortex-M4 port (bug
3513897)(backported to 2.4.1).
- FIX: Spelling fixes (bug 3510812)(backported to 2.4.1).
- FIX: Fixed STM32 ICUD8 not functional because wrong initialization (bug
3508758)(backported to 2.4.1).
- FIX: Fixed chMBFetchI does not decrement mb_fullsem (bug 3504450)(backported
to 2.2.9 and 2.4.1).
- FIX: Fixed STM32 PLLI2S initialization error (bug 3503490)(backported
to 2.4.1).
- FIX: Fixed USART3 not working on STM32F2/F4 UART driver (bug 3496981)
(backported to 2.4.1).
- FIX: Fixed stack misalignment on Posix-MacOSX (bug 3495487)(backported
to 2.4.1).
- FIX: Fixed STM8S HSI clock initialization error (bug 3489727)(backported to
2.2.9 and 2.4.1).
- FIX: Fixed MMC over SPI driver performs an unnecessary SPI read (bug
3486930)(backported to 2.2.9 and 2.4.1).
- FIX: Fixed Realtime counter initialization in STM32 HALs (bug 3485500)
(backported to 2.4.1).
- FIX: Fixed PPC port broken when CH_DBG_SYSTEM_STATE_CHECK is activated
(bug 3485667)(backported to 2.4.1).
- FIX: Fixed missing PLL3 check in STM32F107 HAL (bug 3485278)(backported
to 2.4.1).
- FIX: Fixed ADC maximum frequency limit in STM32F2/F4 ADC drivers (bug
3484947)(backported to 2.4.1).
- FIX: Fixed various minor documentation errors (bug 3484942)(backported
to 2.4.1).
- NEW: Added Eclipse project files to most demos. The project are setup to
have paths relative to a variable named CHIBIOS that must point to the
ChibiOS/RT installation path. The variable must be defined under
Window->Preferences->General->Workspace->Linked_Resources and must contain
a path without the trailing slash character.
- NEW: Added memory signature record to the registry in order to simplify
the implementation of ad-hoc debuggers.
- NEW: Small andjustment in chcore.h files under ./os/ports/GCC required by a
difference in GCC 4.7.x.
- NEW: Added another STM32F4-Discovery demo using the on-board MEMS, SPI
and PWM. Removed MEMS handling from the old demo because code size limits
on non-free compilers.
- NEW: Added configuration wizard plugin under ./tools/eclipse/plugins. This
first version is able to configure the board files for STM32F0xx, STM32F4xx
and STM32L1xx.
- NEW: Added USART6 support to the STM32 UARTv1 driver, contributed by Erik
van der Zalm.
- NEW: Added demo for Arduino Mega, contributed by Fabio Utzig.
- NEW: Added support for ATmega1280, contributed by Fabio Utzig.
- NEW: Added I2C driver for AVR, contributed by Fabio Utzig.
- NEW: Added FatFs demo for the Olimex STM32-P107 board.
- NEW: Added support for the Olimex STM32-E407 board. Added an integrated
demo including USB-CDC, lwIP with web server, FatFs and shell, all running
together.
- NEW: Added an experimental and unsupported STM8 port for the IAR compiler,
contributed by "king2".
- NEW: Updated STM8 header files to latest versions from ST.
- NEW: Reorganized the STM32 EXT driver to have a sub-platform specific
part containing all the ISR related code, this has been necessary because
the significant differences among the various sub-families.
- NEW: Validated CAN driver on STM32F2/F4 (backported to 2.4.2).
- NEW: USB implementation for STM32F105/F107/2xx/F4xx devices.
- NEW: Improved SerialUSB driver using the new queued mode, much smaller
than the previous driver.
- NEW: Improved USB driver model supporting also queues for endpoint I/O,
packet mode removed.
- NEW: Added an application-defined field to I/O queues (a void pointer).
- NEW: Added board files for Maple Mini STM32F103, contributed by Wagner
Sartori Junior.
- NEW: Added SSP1 capability to the LPC13xx SPI driver.
- NEW: Updated vendor headers for LPC11xx and LPC13xx, the new headers
support several new devices.
- NEW: Demo for STM32F0-Discovery board.
- NEW: Initial support for STM32F0xx devices, added a specific ADC driver.
Validated EXT, GPT, ICU, PAL, PWM, Serial, SPI, UART drivers.
- NEW: Added a common ancestor class to the SDC and MMC_SPI drivers. This
allows to share code and definitions.
- NEW: Modified the SDC driver to implement the new block devices abstract
interface.
- NEW: Added two new functions to the MMC_SPI driver: mmcSync() and
mmcGetInfo(). Also implemented the new block devices abstract
interface. Moved the configuration parameters from mmcObjectInit() to
the configuration structure saving some RAM space. Updated demos.
- NEW: Added an abstract interface for block devices in the HAL. This
abstraction layer is meant to unify the access protocol to the SDC and
MMC_SPI (and potentially others) device drivers.
- NEW: Added an abstract interface for serial devices in the HAL. This
interface is meant to replace the equivalent class already present in the
kernel. access macros are similar except for the prefix, "chn" instead
of "chIO".
- NEW: Updated the MSP port to work with the latest MSPGCC compiler (4.6.3
LTS 20120406 unpatched), now the old MSPGCC 3.2.3 is no more supported
(backported to 2.4.1).
- NEW: EXT driver improved, now it is possible to reprogram channels at
runtime without necessarily specifying a new configuration.
TODO: Update AT91SAM7 EXT driver.
- NEW: Integrated FatFS 0.9, now the FatFS integration files are centralized
under ./os/various/fatfs_bindings and shared among all demos. The FatFS
file ffconf.h is now application-specific like all the other configuration
files.
- NEW: Added an new option CORTEX_PRIGROUP_INIT to the Cortex-Mx ports in
order to make priority organization configurable, the default is to
assign all the available priority bits to preemption priority with no
sub-priorities.
- NEW: Added a new function chPoolLoadArray() to the Memory Pools subsystem,
it allows to load an entire array element's into a pool with a single
operation.
- NEW: Addes support for .S patch in the GCC ARM ports, by Ayman El-Khashab.
- NEW: Added a switch to the STM32F4 Makefile files in order to enable or
disable the FPU support in a single place.
- NEW: Added float support (optional) to chprintf(), by Fabio Utzig.
- NEW: Added overflow handling in the ICU driver (contributed by Xo).
- NEW: Updated debug plugin 1.0.8 (backported to 2.4.0).
- NEW: Added more accurate UBRR calculation in AVR serial driver (backported
to 2.4.0).
- NEW: Revision of the round-robin scheduling, now threads do not lose their
time slice when preempted. Each thread has its own time slices counter.
TODO: Seek optimizations.
- NEW: Modified the Virtual Timers management, now the callback is invoked
not in lock mode. This change reduces the interrupt jitter caused by
multiple timers used at same time.
- NEW: Added board files and demo for Olimex LPC-P1343 (contributed by
Johnny Halfmoon).
- NEW: Added handling of input 2 to the STM32 ICU driver (contributed by
Fabio).
- NEW: STM32 Ethernet driver completed. Added STM32F107 and STM32F407
lwIP demos (backported to 2.4.1).
- NEW: lwIP related code is not centralized into a single place, no need to
duplicate the code in each application or demo (backported to 2.4.1).
- CHANGE: Added two new methods to the BaseSequentialStream interface:
chSequentialStreamPut() and chSequentialStreamGet().
- CHANGE: Removed the chioch.h header from the kernel, now channels interface
is exported by the HAL. Removed functions chPutWouldBlock() and
chGetWouldBlock().
- CHANGE: Removed macro chMsgGetS(), chMsgGet() is still available.
- CHANGE: chprintf() now takes a BaseSequentialStream as parameter instead
of a BaseChannel making it more generic.
- CHANGE: Now the shell requires a BaseSequentialStream instead of a
BaseChannel for communications making it more generic.
- CHANGE: Kernel memory pools now do not check the alignment of the inserted
objects, it is responsibility of the application to insert properly
aligned objects.
- CHANGE: The PORT_INT_REQUIRED_STACK parameter for the Cortex-Mx ports has
been increased to 32 from 16 because the stack frame sizes are increased
when compiling with optimizations disabled, which is common during
debugging. In order to save RAM trim back this value when compiling with
optimizations enabled (backported to 2.4.1).
- CHANGE: Renamed Ethernet driver in AT91 HAL ETHD1 (backported to 2.4.1).
- CHANGE: Macros icuGetWidthI() and icuGetPeriodI() renamed to icuGetWidth()
and icuGetPeriod().
- Various documentation fixes and improvements.
*** 2.3.5 ***
- FIX: Fixed RTC compile problem on STM32F103 (bug 3468445).
- FIX: Fixed PWM with TIM1 and TIM8 broken in STM32 HAL (bug 3458947).
- FIX: Fixed SYSCFG clock not started in STM32L1/F4 HALs (bug 3449139).
- FIX: Fixed wrong definitions in STM32L-Discovery board file (bug 3449076).
- OPT: Improved the exception exit code in the GCC Cortex-Mx ports.
- NEW: Added a DMA stress test application for the STM32F4 in order to assess
robustness of the whole HAL.
- NEW: Added a Time Measurement driver to the HAL, this generic driver uses
the realtime counters abstracted in the HAL driver.
- NEW: Improved the STM32F1xx HAL driver, it now has the same features and
configuration options of the newer STM32s.
- NEW: MMC over SPI driver improved to handle high capacity cards, by
Matthias Blaicher.
- NEW: Added PVD support to the HAL of all STM32s, by Barthess.
- NEW: Added to the HAL driver the handling of an abstract realtime free
running counter, added the capability to all the STM32 HALs.
- NEW: Modified ARM and ARMCMx build rules to allow parallel build. Now the
log outputs one dummy compilation command in order to allow paths discovery
by Eclipse.
- NEW: Added an utility module to access LIS302DL MEMS using a SPI.
- NEW: Updated STM32F2xx support by inheriting the work done on the STM32F4xx,
the whole thing is untested because lack of hardware.
- NEW: Files nvic.c and nvic.h moved under ./os/ports/common/ARMCMx, removed
the duplicated instances under the GCC, IAR and Keil ports. Function names
prefixes changed from "NVIC" to "nvic" because style conventions.
- NEW: Added voltage regulator initialization to the STM32F4xx HAL.
- NEW: Added a linker script that demonstrates how to put stacks and other
critical structures in the CCM RAM instead normal RAM.
- NEW: Added experimental support for the Cortex-M4 FPU (default when the
FPU is present but can be disabled).
- NEW: Improved I2C driver model and STM32 implementation by Barthess.
- CHANGE: Removed the option to change the stack alignment in the GCC
Cortex-Mx ports, now alignment is always 64 bits.
- CHANGE: Modified the function palSetGroupMode() to have an offset parameter
in order to make it similar to other functions operating on groups.
- CHANGE: Increased main and process default stack sizes from 0x100 to 0x200
in LPC1114 and LPC1343 linker scripts.
*** 2.3.4 ***
- FIX: Fixed Extra initialization in STM32 SPI driver (bug 3436127)
(backported to 2.2.8).
- FIX: Fixed DMA priority setting error in STM32 UART driver (bug 3436125)
(backported to 2.2.8).
- FIX: Fixed DMA priority setting error in STM32 SPI driver (bug 3436124)
(backported to 2.2.8).
- FIX: Fixed broken support for UART5 in STM32 serial driver (bug 3434094)
(backported to 2.2.8).
- FIX: Fixed broken TIM8 support in STM32 PWM driver (bug 3418620).
- FIX: Fixed halconf.h file corrupted in some STM32 demos (bug 3418626).
- NEW: Added an unified registers file for STM32: stm32.h. This file includes
the appropriate vendor file then adds its own additional definitions.
- NEW: Added demo for the ST STM32F4-Discovery kit.
- NEW: STM32F4xx ADC driver implementation.
- NEW: Added initialization of the NVIC VTOR register to all Cortex-Mx (v7M)
ports. Also added a port option CORTEX_VTOR_INIT to enforce a different
default value into the register.
- NEW: Removed the warning about the "untested M4 platform", now it is
tested and officially supported.
- NEW: Reorganized the STM32F1xx hal_lld_xxx.h files in order to distribute
the capability macros into the appropriate file (previously those were all
in the common hal_lld.h).
- NEW: Added HAL, Serial, ADC, EXT, GPT, ICU, PWM, SPI and UART support for
the STM32F4xx sub-family.
TODO: Add CAN and SDC, the drivers need to be ported and tested.
- NEW: Added handling of USART6 to the STM32 serial driver.
- NEW: Added USE_COPT setting to all makefiles, contributed by Mabl.
- NEW: Added EXT driver implementation for AT91SAM7x, contributed by Florian.
TODO: Test application missing.
- NEW: Updated USB driver model and STM32 implementation and fixed several
problems.
- Changed the API to move buffer copy operations out of critical zones.
- Added usbConnectBus() and usbDisconnectBus() functions.
- Fixed problems with incorrect assertions.
- NEW Updated the SERIAL_USB driver to match the new USB API, also fixed
some problems.
- Fixed incorrect use of input queues, the change required a change in
input queues too.
- NEW: Added a macro THD_STATE_NAMES to chthreads.h. This macro is an
initializer for string arrays containing thread state names.
- NEW: Added memory copy functionality to the STM32 DMA driver.
- NEW: Implemented new makefile system for ARM GCC ports, now objects,
listings and output files are generated into a "build" directory and not
together with sources, also implemented a simplified output log mode.
Now makefiles and load script files are requirements and trigger a
rebuild if touched.
- NEW: Updated AVR demos to use the new PAL driver.
- NEW: Added Keil build files to the STM32L-Discovery demo.
- CHANGE: Now the callback associated to input queues is invoked before
reading each character. Previously it was invoked only before going
to sleep into the THD_STATE_WTQUEUE state.
- CHANGE: Moved the STM32 DMA helper drivers files under the sub-family
specific directories because documentation issues.
*** 2.3.3 ***
- FIX: Fixed missing UART5 definition in STM32 HAL (bug 3411774)(backported
to 2.2.8).
- FIX: Fixed uninitialized variable in STM32 PWM and ICU drivers (bug 3413558).
- FIX: Fixed wrong parameter passed to the DMA error hook in STM32 ADC driver,
the DMA error hook has been removed entirely in the new ADC driver model
(bug 3413214).
- FIX: The function chThdExit() triggers an error on shell return when the
system state checker is enabled (bug 3411207)(backported to 2.2.8).
- FIX: Some ARMCMx makefiles refer the file rules.mk in the ARM7 port (bug
3411180)(backported to 2.2.8).
- FIX: Fixed wrong check on CH_DBG_ENABLE_STACK_CHECK setting (bug 3387671)
(backported to 2.2.7).
- FIX: Fixed wrong APB1 frequency check (bug 3361039)(backported to 2.2.7).
- FIX: Fixed missing state in shell demos (bug 3351556)(backported to 2.2.7).
- FIX: Fixed race condition in Cortex-Mx ports (bug 3317500)(backported
to 2.2.6).
- FIX: Fixed wrong macro check in STM32 UART driver (bug 3311999)(backported
to 2.2.6).
- FIX: Fixed wrong macro definition in ARMv6-M architecture files (bug
3310084).
- FIX: Fixed race condition in output queues (bug 3303908)(backported
to 2.2.4).
- FIX: Fixed CH_USE_HEAP and CH_USE_MALLOC_HEAP conflict (bug 3303841)
(backported to 2.2.4).
- FIX: Fixed timeout problem in the lwIP interface layer (bug 3302420)
(backported to 2.2.4).
- NEW: Added AVR implementation of the PAL driver contributed by Leszek.
- NEW: STM32L ADC driver implementation.
- NEW: Improved ADC driver model, now it is possible to handle error
conditions during the conversion process.
- NEW: STM32L1xx sub-family support, all STM32 drivers adapted and re-tested
on the new platform except ADC that will need a specific implementation.
- NEW: Added new API chThdExitS() in order to allow atomic operations on
thread exit (backported to 2.2.8).
- NEW: New EXT driver model and STM32 implementation.
- NEW: New I2C driver model and STM32 implementation.
(evaluate the option to change the API to a synchronous model)
- NEW: New RTC driver model and STM32 implementation.
(API and functionality review)
- NEW: Improved MAC driver model, it now follows the same template of other
drivers.
TODO: implement macStop() in AT91SAM7X implementation.
- NEW: New RCC helper driver for STM32F1xx and STM32L1xx, it simplifies
the use of the RCC resources and hides most differences found among the
various STM32 sub-families.
- NEW: New DMA helper driver for STM32, it simplifies the use of the DMA
resources and hides most differences with the new enhanced DMA units
found in the STM32F2xx sub-family.
- NEW: Now an error is generated at compile time when trying to enable the
options CH_DBG_ENABLE_STACK_CHECK on ports that do not support it.
- NEW: Added a kernel-only Cortex-Mx demo as reference project for users not
interested in the HAL but just want to use the ChibiOS/RT kernel.
The demo is named ARMCM3-GENERIC-KERNEL and is defaulted to the STM32, in
order to use it on other families or on the ARM Cortex-M0 just change the
inclusion paths in the makefile.
- NEW: Integrated new FatFs version 0.8b.
- NEW: Added a new hook THREAD_CONTEXT_SWITCH_HOOK() that allows to insert
code just before a context switch. For example this hook could be used
in oder to implement advanced power management schemes.
- NEW: Added a new debug option CH_DBG_SYSTEM_STATE_CHECK that ensures the
correct API call protocol. If an API is invoked out of the correct context
then the kernel panics with a debug message.
- NEW: The ARMCMx startup file (crt0.c) now is able to fill the stack areas
with a filler (default behavior). This is required in order to easily assess
the stack usage at runtime.
- NEW: Added the new CMSIS 2.1 headers, now CMSIS resides into a shared
location: ./os/ports/common/ARMCMx/CMSIS. Old CMSIS files have been
removed from the various platforms.
- NEW: Removed all the ch.ld files from the ARMCMx demos, now the makefiles
point to common ld files under the various ports. Less duplication and
easier maintenance.
- NEW: Improved stack checking and reorganized memory map for the Cortex-Mx
demos. Now stacks are allocated at the start of the RAM, an overflow of the
exception stack now triggers an exception (it could go unnoticed before).
The process stack is organized to be checked on context switch like other
threads. Now all threads have an explicit stack boundary pointer.
- NEW: Added debug plugin for Eclipse under ./tools/eclipse (backported to
2.2.7).
- NEW: The debug macros chDbgCheck() and chDbgAssert() now can be externally
redefined. The macro chDbgCheck() no more includes the line number in the
description because incompatibility with the Cosmic compiler (backported to
2.2.7).
- NEW: Added provisional support for STM32F2xx. Because of this some
directories related to the STM32 have been renamed, your makefiles may
require adjustments.
- NEW: Added a custom rule to the various rules.mk files, now it is possible
to add an user rule into the Makefiles.
- NEW: Improvements to the trace buffer, now it stores a full thread pointer
and event time, changed names to debug variables by adding the "dbg_"
prefix (backported to 2.2.7).
- NEW: Added a new functionality to the registry subsystem, now it is possible
to associate a name to the threads using chRegSetThreadName. The main and
idle threads have their name assigned by default (backported to 2.2.7).
- NEW: Added TIM8 support to the STM32 GPT, ICU and PWM drivers.
- NEW: Updated the STM32 header file to the latest version 3.5.0 and fixed
it in order to correct several bugs related to the XL family.
- NEW: Added a chprintf() function to ./os/various, it can print on any
BaseChannel.
- NEW: Improved the mini shell, enhanced info command, optimizations and
removed the shellPrint() and shellPrintLine() functions, now it uses
chprintf() for output.
- NEW: lwIP 1.4.0 has been integrated, this new version does not require
custom hooks into the Thread structure and is thus much lighter.
- NEW: FatFs demo for the STM32F103ZG using the SDC driver.
- NEW: Now the STM32 SDC driver supports unaligned buffers transparently.
Optimized the driver for single block read and write operations. Optimized
the driver state machine.
- NEW: Finished the reorganization of the Cortex-Mx ports, now also the
IAR and RVCT ports support the new Compact mode.
- NEW: Added to the ARMv6-M sub-port an option to use the PendSV exception
instead of NMI for preemption (backported to 2.2.5).
- NEW: Reorganization of the Cortex-Mx ports in order to reduced code and
comments duplication in the various headers (backported to 2.2.5).
- NEW: Improved the ARMv7-M sub-port now there are two modes: Compact and
Advanced.
The advanced mode is equivalent to the previous versions, the compact mode
is new and makes the kernel *much* smaller and generally faster but does
not support fast interrupts (backported to 2.2.5).
- NEW: Now the port layer exports info regarding the compiler and the port
options. The info are printed into the test reports. Date and time also
added.
- CHANGE: Removed the option CH_USE_NESTED_LOCK, lwIP no more requires it and
it would have conflicted with CH_DBG_SYSTEM_STATE_CHECK which is far more
useful.
- CHANGE: Renamed the scheduler functions chSchIsRescRequiredExI() to
chSchIsPreemptionRequired(), chSchDoRescheduleI() to chSchDoReschedule(),
chSysSwitchI() to chSysSwitch(). All those functions were special cases
and not regular I-class APIs.
- CHANGE: Renamed the macros IDLE_THREAD_STACK_SIZE and INT_REQUIRED_STACK
to PORT_IDLE_THREAD_STACK_SIZE and PORT_INT_REQUIRED_STACK for consistency.
- CHANGE: Removed the "old" Cortex-M3 port from the code, the current port
has no drawbacks and the old port is now just a maintenance cost.
- CHANGE: Removed the CH_CURRP_REGISTER_CACHE option, it is GCC-specific so
it does not belong to the kernel options. The feature will be eventually
reimplemented as a port-specific option.
- CHANGE: chiQGetFullI() and chOQGetFullI() become macros. The queues
subsystem has been optimized and is no more dependent on semaphores.
Note that the queues callbacks invocation policy has been slightly
changed, see the documentation (backported to 2.2.4).
*** 2.3.2 ***
- FIX: Fixed invalid BRR() macro in AVR serial driver (bug 3299306)(backported
to 2.2.4).
- FIX: Fixed missing IRQ vectors amicable names for STM32 XL devices (bug
3298889)(backported to 2.2.4).
- FIX: Fixed wrong identifier in AVR serial driver (bug 3292084)(backported
to 2.2.4).
- FIX: Fixed wrong macro check for STM32 XL devices (bug 3291898)(backported
to 2.2.4).
- FIX: Fixed SPI driver restart in STM32 SPI driver implementation, also
applied the same fix to the STM8S SPI driver (bug 3288758)(backported to
2.2.4).
- FIX: Fixed missing state transition in ADC driver (bug 3288149)(backported
to 2.2.4).
- FIX: Fixed missing state transition in SPI driver (bug 3288112)(backported
to 2.2.4).
- FIX: Fixed spurious characters generated by Serial over USB driver (bug
3276379).
- NEW: Added an option to the kernel to not spawn the Idle Thread from within
chSysInit(), this way the application can spawn a custom idle thread or
even use the main() thread as idle thread (backported to 2.2.4).
- NEW: Added new SDC driver model, Secure Digital Card.
- NEW: SDC driver implementation for STM32.
- NEW: Updated the STM32 header file to the latest version 3.4.0, had to
fix a bug regarding the STM32 XL sub-family.
- NEW: New unified GCC startup file for Cortex-Mx processors, it is written
in C instead of asm and supports constructors/destructors. Improved the
Cortex-Mx linker scripts in all the GCC demos.
- NEW: Now it is possible to share DMA channels in the STM32 HAL thanks
to a centralized manager. Channels are allocated when the driver is
started and released when it is stopped.
- NEW: Added an STM32 C++ demo for the GNU compiler.
- NEW: Added an STM32F103ZG demo for the STM3210E-EVAL evaluation board.
- OPT: STM32 PWM driver implementation simplified.
- CHANGE: Now pwmChangePeriod() does not implicitly disable the active
PWM channels.
- CHANGE: Renamed the chSemSetCounterI() function to chSemAddCounterI() and
changed its behavior.
- CHANGE: Modified the STM32 USB-CDC test demo to spawn a shell over the USB
serial connection.
*** 2.3.1 ***
- FIX: Fixed insufficient idle thread stack in Cortex-M0-GCC port (bug 3226671)
(backported to 2.2.3).
- FIX: Fixed stack checking in Cortex-M0-GCC port (bug 3226657)(backported
to 2.2.3).
- FIX: Fixed wrong checks in PAL driver (bug 3224681)(backported to 2.2.3).
- FIX: Fixed wrong checks in I/O Queues (bug 3219197)(backported to 2.2.3).
- FIX: Fixed invalid assertion in adcConvert() (bug 3205410)(backported
to 2.2.3).
- NEW: Improvements to the PWM driver model:
- Easier configuration similar to the GPT driver initializations, macros
are no more required.
- Added a new function that allows to change the PWM period on the fly,
even from within callbacks. Formerly it was required to stop and restart
the driver.
- Improved driver documentation.
- NEW: Added advanced mode to the STM32 PWM driver (TIM1 only).
- NEW: Added new ICU driver model, Input Capture Unit.
- NEW: ICU driver implementation for STM32.
- NEW: Implemented stack checking in the Cortex-Mx RVCT port (backported
to 2.2.3).
- NEW: Added support for PLL3 in STM32 HAL driver. Note, the format of the
mcuconf.h file is changed for STM32F105/STM32F107 devices.
- NEW: Added board files for the Olimex STM32-P107.
- NEW: Improved setup packets handling in the USB driver through a specific
callback.
- NEW: Improvements to the PAL driver and various implementation in order
to make them more parenthesis friendly.
- OPT: Simplified Serial over USB driver configuration.
- CHANGE: Renamed the demo ARMCM3-STM32F107-GCC in ARMCM3-STM32F107 and added
IAR and Keil projects.
- CHANGE: Now the ARMCM3-STM32F107 demo targets the board Olimex STM32-P107
as default.
- CHANGE: Removed all the prefixes from the structure/union field names
in the HAL subsystem.
- CHANGE: Updated the documentation to use Doxygen 1.7.4 which produces a much
more readable output. Also modified the documentation layout to put functions
and variables ahead of everything else in the group pages.
Doxygen version below 1.7.4 cannot be used anymore because differences in
templates. Note that now there are two Doxygen projects, one for generating
the CHM file the other for plain HTML.
*** 2.3.0 ***
- FIX: Fixed race condition in CM0 ports, the fix also improves the
ISR latency (bug 3193062)(backported to 2.2.2).
- FIX: Fixed Cortex-Mx linker scripts alignment of __heap_base__, the
correct alignment is now enforced at runtime into core_init() in order
to make the OS integration easier (bug 3191112)(backported to 2.2.2).
- FIX: Fixed error in function chCoreAllocI() function documentation (bug
3191107)(backported to 2.2.2).
- FIX: Fixed minor problem with memory pools (bug 3190512)(backported to
2.2.2).
- FIX: Stack overflow in CM0 ports when nearing interrupts saturation (bug
3187105)(backported to 2.2.1).
- FIX: Fixed error in _BSEMAPHORE_DATA macro (bug 3184139)(backported to
2.2.1).
- FIX: Error in MAC driver (bug 3179783)(backported to 2.2.1).
- FIX: Fixed wrong serial driver macros (bug 3173336)(backported to 2.2.1).
- NEW: Improved preemption implementation for the Cortex-M0, now it uses
the NMI vector in order to restore the original context. The change makes
IRQ handling faster and also saves some RAM/ROM space. The GCC port code
now does not inline the epilogue code in each ISR saving significant ROM
space for each interrupt handler in the system (backported to 2.2.3).
- NEW: Added "IRQ STORM" long duration tests for the STM32, LPC11xx and
LPC11xx. The test demonstrates the system stability in a thread-intensive,
progressively CPU-saturating, IRQ-intensive long duration test.
- NEW: Added two new functions to the events subsystem: chEvtBroadcastFlags()
and chEvtBroadcastFlagsI(). The old chEvtBroadcast() and chEvtBroadcastI()
become macros. The new functions allow to add the same flags to all the
registered listener threads.
- NEW: Added I-Class functions to the MailBoxes subsystem, now it is
possible to use them as a transport layer between ISRs and Threads
(backported to 2.2.2).
- NEW: Added new USB driver model, probably it will evolve in next
releases.
- NEW: USB driver implementation for STM32.
- NEW: Added "serial over USB" driver, it implements a Communication
Device Class exposing it as a normal serial driver to applications,
probably it will evolve in next releases.
- NEW: Added STM32 USB CDC loopback test application.
- NEW: Added new GPT driver model, General Purpose Timer. The driver
allows to access the available timers in an abstract way.
- NEW: GTP driver implementation for STM32, LPC13xx and LPC11xx.
- NEW: Added STM32 GPT test application.
- NEW: Implemented new event IO_TRANSMISSION_END in the generic serial
driver. This event marks the physical transmission end of a data stream.
- NEW: Implemented the new IO_TRANSMISSION_END event in the STM32 serial
driver.
- NEW: Added explicit reset of all peripherals inside the STM32 HAL driver.
Removed the separate resets on initialization from the various other
drivers saving significant space.
- OPT: Removed TIMx reset on system startup in the STM32 PWM driver, the
timers are already reset on driver startup.
- CHANGE: The functions chEvtSignal() and chEvtSignalI() have been renamed
to chEvtSignalFlags() and chEvtSignalFlagsI() for consistency.
- CHANGE: Swapped the numeric values of the TIME_IMMEDIATE and TIME_INFINITE
constants. Fixed the relative documentation in various places (backported
to 2.2.2).
- Many documentation improvements.
*** 2.1.8 ***
- FIX: Fixed error in STM32 ADC driver macro names (bug 3160306)(backported
to 2.0.11).
- FIX: Fixed IAR Cortex-Mx port memory organization problem (bug 3158776).
- FIX: Fixed STM32F103 demo's incorrect clock settings (bug 3153746).
- NEW: Added OTG clock setting to the STM32 HAL.
- NEW: Added stack check support to the IAR Cortex-Mx port.
- CHANGE: Removed .uvopt files from the Keil projects.
*** 2.1.7 ***
- FIX: Fixed various errors in the HAL documentation (bug 3153591).
- FIX: Fixed error in chIOGetxxxxxEventSource() macros (bug 3153550)
(backported to 2.0.10)
- FIX: Fixed error in STM32 unbuffered UART driver (bug 3153437).
- FIX: Fixed wrong macro check in LPC214x driver (bug 3152510).
- FIX: Fixed switch condition error in STM32 PWM driver (bug 3152482)
(backported to 2.0.10).
- FIX: Fixed error in output queues static initializer (bug 3149141)
(backported to 2.0.9).
- FIX: Fixed extra notifications in input queues (bug 3148525)(backported
to 2.0.9).
- NEW: New ARM Cortex-Mx port for RVCT compiler.
- NEW: Integrated the various Cortex-Mx GCC, IAR and RVCT demos in unified
demos with multiple project files, the code is exactly the same. Renamed
the directories removing the compiler suffix.
- NEW: Added an USB clock configuration in the STM32 HAL driver (LD, MD, HD).
- NEW: New semaphore API chSemSetCounterI().
- NEW: New queue APIs chIQGetFullI() and chOQGetFullI().
- CHANGE: Serial drivers now have a single event source instead of three,
the event source is located in the superclass, this allows to create
alternative implementations of the serial driver while keeping compatibility,
the change also allowed to save 8/4 RAM bytes per serial driver.
- CHANGE: Modified the ADC and CAN drivers to allow a NULL pointer for
the configuration structure if it is not required by the implementation.
- CHANGE: Modified the MMC_SPI driver to *require* a NULL as pointer to
the configuration.
- CHANGE: Removed enforced inlining for the chSchReadyI() function when
the CH_OPTIMIZE_SPEED is enabled. Now the matter is left to the compiler
specific settings. This change is meant to increase compatibility with
compilers that have a different inlining semantic than GCC when not in
C99 mode.
- CHANGE: Changed the declaration of the main() function in all demos
without arguments. Removed the clearing of arguments from the startup
files and saved some space.
- CHANGE: Queues callbacks now have as parameter a pointer to the queue,
there were no parameters previously.
- Documentation related fixes.
*** 2.1.6 ***
- FIX: Fixed error in sdPutTimeout() macro (bug 3138763)(backported in 2.0.9).
- NEW: New ARM Cortex-Mx port for IAR compiler.
- NEW: Now the STM32 CAN driver puts the lower half word of the ESR
register in the upper half word of the can status word for easier
debug.
- CHANGE: Changes in the board files organization, now the board