Newer
Older
- mallinfo() should hold the memory manager semaphore (from Petteri
Aimonen.
* Build System:
- Resolved several build errors reported by Mike Smith.
* Applications:
- Fixed an NSH memory leak: Needed to detach after creating each
pthread.
- readline() now returns EOF on any failure (instead of a negated
errno value). This is because the underlying read is based on
logic similar to getc. The value zero (meaning end-of-file)
was being confused with a NUL. So if a NUL was received, the
NSH session would terminate because it thought it was the end of
file.
Gregory Nutt
committed
----------
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
The 94th release of NuttX, Version 6.27, was made on April 28, 2013,
and is available for download from the SourceForge website. Note
that release consists of two tarballs: nuttx-6.27.tar.gz and
apps-6.27.tar.gz. Both may be needed (see the top-level nuttx/README.txt
file for build information).
Additional new features and extended functionality:
* OS Initialization:
- Add missing registration of /dev/zero. Registration of /dev/null
should depend upon conditional compilation. From Ken Pettit.
* Tasking:
- Added a new interface to set aside memory on the task's stack. This
is used (at least in the kernel build) to hold task arguments.
- Remove up_assert_code(). One assertion routine is enough.
* Kernel Build:
- Extensive changes were made to support the kernel build mode. In
this mode, NuttX is built as a monolithic kernel. NuttX is built
as a separate kernel mode "blob" and the applications are built
as a separate user mode "blob". The kernel runs in kernel mode and
the applications run in user mode (with the MPU restricting user
mode accesses). Access to the kernel from the user blob is only
via system calls (SVCalls).
- Kernel build configurations for the Open1788 board and for the
STM32F4Discovery now execute correctly.
- Changes were made to task and thread start-up routines, signal
handling, data structures, ARMv7-M SVCalls, stack management
interfaces,
* Drivers:
- Driver for the ST7567 LCD Display Module from Univision Technology
Inc. Contributed by Manikandan.S
- SPI initialize functions renamed so that multiple SPI blocks can
be initialized.
- Extended to support the RAMTRON FM25V01 device. Contributed by
Lorenz Meier
- Serial drivers: TIOCSERGSTRUCT ioctls now conditioned on
CONFIG_SERIAL_TIOCSERGSTRUCT
* ARMv7-M (Cortex-M3/4):
- Added support for modifiable interrupt vectors in RAM
* nuvoTon NUC1xx:
Gregory Nutt
committed
- Added kernel build support
* Freescale Kinetis:
Gregory Nutt
committed
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
- Add kernel build support
- Add support for the Kinetis L family of Cortex-M0+ MCUs. Contributed
by Alan Carvalho de Assis.
* LPC17xx:
- Now holds off sleep mode in the IDLE loop is DMA is in progress
(because sleep mode will disable CPU SRAM).
* LPC17xx Boards:
- ZKIT-ARM-1769: Now supports the ST7567 LCD display module. Added
an nxhello configuration for testing (Manikandan.S).
- ZKIT-ARM-1769: Add support for both CAN1 and CAN2. Contributed by
M.Kannan
- Open1788: Basic support for the WaveShare Open1788 board is complete
with working OS test, NSH, and graphics configurations.
- Open1788: Integrated the LPC178x LCD driver with the WaveShare display.
Touchscreen support is included, howerver, there appears to be an
issue with the Open1788 touchscreen interrupt signal.
- Open1788: Now supports SDRAM (used to provide the LCD framebuffer).
- Open 1788: Reversed sense of the IDLE LCD. It is now off when the
LPC17 is sleeping and on when awake. That is much a better visual
indication of the dynamic CPU load
* LPC17xx Drivers:
- Added an LCD framebuffer driver for the LPC177x/8x family.
- Implemented LPC17xx GPDMA support.
- Integrated the LPC17xx GPDMA support into the SD card driver.
- SSP driver adapted to work with the LPC178x family.
- Separate LPC176x and LPC178x GPIO logic; this logic is too different
to maintain in one file with conditional compilation.
- Re-design of the GPIO logic for the LPC178x family by Rommel Marcelo.
* LPC43xx:
Gregory Nutt
committed
- Added support for kernel mode build.
- Added architecure support for the STM32 F427/F437 chips. Contributed
by Mike Smith
- Added a configuration to support a kernel mode build of the OS test
on the STM32F4Discovery
- Added kernel build support
- Added support for the 7 UARTs on the LM4F120
- Added scripts and instructions to simplify use of OpenOCD with ICDI
(JP Carballo)
- The basic for the Stellaris LM4F120 Launchpad is complete. This
includes support for OS test and NSH configurations. Additional
driver development is needed.
Gregory Nutt
committed
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
* Build System:
- Directories where the same sources files are used to build different
objects in the first and second pass kernel builds need to keep those
objects in separate directories so that they are not constantly
rebuilt.
* Applications:
- apps/system/ramtest: Add a simple memory test that can be built
as an NSH command.
* Tools:
- kconfig2html is a new tool which will replace the hand-generated
documentation of the NuttX configruation variables with auto-
generated documentation.
Efforts In Progress. The following are features that are partially
implemented but present in this release. Most are expected to be fully
available in NuttX 6.28.
* A port to the Freescale Freedom KL25Z is complete but not yet stable
enough. The KL25Z is a low-cost Cortex-M0+ part with 128KB of FLASH
and 16KB of SRAM. This is is the effort of Alan Carvalho de Assis.
* Conversion of old configurations to use the kconfig-frontends
tool is an ongoing effort that will continue for some time.
At this time, only 32% of the configurations have been converted
to use the kconfig-frontends tools.
Bugfixes (see the ChangeLog for details). Some of these are very important:
* Tasking:
- Fixed a critical bug: When there is pending C buffered output
and the system is very busy, the a pthread may be blocked at
a critical point when trying to exit. Blocking at this critical
point would cause crashes. All entire task/thread exit logic
paths were reviewed and failsafe mechanisms were put in place
to assure that exitting tasks never block after task teardown
has been started.
* ARMv6-M:
- Fixed parameter passing for all system call inline functions with > 3
parameters
- Fixed a major problem: The Cortex-M0 has no BASEPRI register but the
logic of NuttX-6.26 was using it to manage interrupts. Switch to
using the PRIMASK instead. This means that hardfaults will (again)
occur when SVC instructions are executed
* ARMv7-M:
- Corrected Correct MPU sub-region settings for unaligned regions.
- In exception handling with CONFIG_NUTTX_KERNEL, need to explicitly
set and clear the privilege bit in the CONTROL
- Fixed parameter passing for all system call inline functions with > 3
parameters
* Drivers:
- Support for O_NONBLOCK was not supported in the "upper half"
serial driver.
- PL2303 compilation errors
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
- Corrected typos in alternate function definitions.
* LPC17xx Drivers:
- Added a work-around for an ADC errata. From Chris Taglia
- Only one ADC pin was configured. Need to configure all that
are in the ADC0 set. From MKannan
* File Systems:
- The FAT logic was not making a distinction between directory
non-existence and file non-existence so when it you try to
create a file in a non-existent directory, it would create a
file with the name of the missing directory. Reported by Andrew
Tridgell
- Several fixes to the FAT file system from Ronen Vainish. These
fixes mostly involve the logic to extend directory clusters for
the case of long file names but also include a few important
general fixes (such as for storing 32 bit FAT values)
- mkfatfs was writing the boot code to the wrong location. From
Petteri Aimonen
* Networking:
- Fixed a compilation error when socket options are are disabled.
Reported by Daniel O'Connor
* C Library:
- Corrected an error in sscanf. If %n occurs in the format statement
after the input data stream has been fully parsed, the %n format
specifier will not be handled. Reported by Lorenz Meier
- strchr(str, '\0') should return a pointer to the end of the string,
not NULL. From Petteri Aimonen
* Build System:
- Fix naming of NuttX target if EXEEXT is defined.
* Applications:
- OS test: Fix timing error in non-cancelable thread test.
- NSH: Correct the test of the skip input parameter. Was limiting the
range to <= count. From Ken Petit.
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
NuttX-6.28
----------
The 95th release of NuttX, Version 6.28, was made on June 14, 2013,
and is available for download from the SourceForge website. Note
that release consists of two tarballs: nuttx-6.28.tar.gz and
apps-6.28.tar.gz. Both may be needed (see the top-level nuttx/README.txt
file for build information).
Additional new features and extended functionality:
* File Systems:
- SMART FLASH file system (contributed by Add Ken Pettit).
* MTD (FLASH) Drivers:
- Add support of MTD partitions via a new MTD driver that manages a
set of MTD devices, each managing a subset of the FLASH region
managed by the parent MTD driver.
- Extended the MTD interface to provide an (optional) method to
perform byte oriented writes if supported by the FLASH part.
- M25Px driver re-architected to use the byte write capability (when
possible) and to use 4KB sectors for the erase block size when the
part supports it (from Ken Pettit).
* LCD Drivers:
- New interface definitions to support audio devices (from Ken Pettit)
and alphanumeric, segment LCDs.
* Wireless Drivers:
- Added new driver for the wireless nRF24L01+ transceiver (from
Laurent Latil).
* Calypso:
- Added support for the Pirelli DP-L10 phone (from Craig Comstock via
Alan Alan Carvalho de Assis)
* STM32:
- Added an option to conditionally disable the "wfi" sleep mode. This
is needed with certain JTAG debuggers to to prevent the debug
session from begin disconnected (from Ken Pettit).
- Added support for the STM32L (STM32L15X/STM32L16x) family.
- Added STM32F103C4 and F103C8 chip support (from Laurent Latil).
- Added a new interface function, stm32_dmacapable() that can be used
to determine if DMA is possible from the specified memory address
(from Petteri Aimonen)
* STM32 Drivers:
- If CONFIG_STM32_DMACAPABLE is defined, the STM32 SPI driver now uses
stm32_dmacapable() to determine if it is possible to perform DMA
from the specified address. This change is important for the STM32
F4 which may have SPI data buffers allocated on the stack in CCM
memory which cannot support the DMA (from Petteri Aimonen).
* STM32 Boards:
- Support added for the MikroElektronika Mikromedia for STM32F4
development board (from Ken Pettit) with the MIO283QT2 LCD and
touchscreen. Several graphics configurations are included.
- The HY-mini STM32v board now uses the common SSD1289 driver
and supported the card detect interrupt. Several new
configurations also added and some removed (from Laurent Latil).
- Support added for the R65105-based LCD that comes with some
HY-Mini STM32v boards (from Christian Faure).
- Added basic support for the STM32L-Discovery board. Drivers
for the on-board segment LCD are included.
- Added support for the STM32 Tiny development board based on the
STM32 F103C8T6 MCU. This includes support for the nRF24L01+
wireless on the board (from Laurent Latil).
* Stellaris LM3S/LM4F:
- Support added for a TI/Stellaris internal FLASH MTD driver (from Max
Holtzberg).
* Stellaris LM4F Boards:
- The LM3S6965-EK now has configurations for the UDP discovery tool and
for the TCP echo server (both from Max Holtzberg)
* Atmel ATSAM3/4:
- Reorganized, renamed, and updated directory structure to better
support additional members of the SAM3/4 family.
- Added support for both the ATSAM4S and ATSAM4L families. The
ATSAM4S is similar to the ATSAM3U, but the ATSAM4L is quite a
different beast, really much more akin to the AVR32s SoCs but
with a Cortex-M4.
* Atmel ATSAM3/4 Boards:
- Added support for the Atmel SAM4L Xplained Pro development board.
This board features the ATSAM4LC4C MCU (Cortex-M4 with 256KB FLASH +
32KB SRAM).
- Added support for the Atmel SAM4S Xplained developement board. This
board features the ATSAM4S16C MCU (Cortex-M4 with 1MB FLASH + 128KB
SRAM).
* PIC32MX Boards:
- Added support for the 1602 segment LCD on-board the Sure PIC32MX
board. This board will now also support a USB NuttX console and
the USB monitor test program.
* Build System:
- Clean-up of almost all .gitignore files: Made scope of ignore to be
only the current directory; Ignore .dSYM files in directories where
.exe's may be built. Also, in Makefiles, clean .dSYM files in
directories where an .exe may be built.
- Standardize and consolidated all build-as-an-NSH-application
configuration settings. Now only CONFIG_NSH_BUILTIN_APPS is
sufficient to build an application, test, or or example as an NSH
builtin application.
- Added support for a generic ARM, ARMv6-M and ARMv7-M Windows EABI
toolchains.
* Libraries:
- Added encoder/decoder logic to marshal and serialize special segment
LCD (SLCD) commands intermixed with normal ASCII data. This is the
similar to the encoding/decoding logic that is used to marshal
special commands from a keyboard.
- Add dprintf() and vdprintf() (the latter from Andrew Tridgell).
- Add an application that may be built as an NSH builtin command that
will erase FLASH using a flash_eraseall NSH command (from Ken Pettit).
* Applications:
- Added an MTD partition test/examples. Currently used with (1) the a
simulation configuration to test MTD partitions on a RAM emulation
of FLASH and (2) with the Mikroe STM32F4 configuration.
- Added a test/example to verify alphanumeric, segment LCDs.
- Added a simple single threaded, poll based TCP echo server based
on W. Richard Stevens UNIX Network Programming Book (from Max
Holtzberg).
- Added several tests of the SMART block driver and file system (from
Ken Pettit).
- Added a runtime configuration for the UDP discover utility (from
Max Holtzberg).
- Added an example application to demo the nRF24L01 driver (from
Laurent Latil).
- New and modified NSH commands:
Added a -h option to the df command to show the volume information
in human readable form (from Ken Petit).
Add a new mksmartfs command (from Ken Petit).
Efforts In Progress. The following are features that are partially
implemented but present in this release. Most are expected to be fully
available in NuttX 6.28.
* Audio System:
- A complete audio subsystem include CODECs, higher level management,
interface definitions, and audio drivers was contributed by Ken
Pettit. This work has not been completely verified as of this
release and so is categorized as a work-in-progress. At present,
progress is blocked due to issues interfacing with the VS1053
audio DAC on the Mikroe STM32F4 board.
* kconfig-fronted Configuration:
- Conversion of old configurations to use the kconfig-frontends
tool is an ongoing effort that will continue for some time.
At this time, only 43% of the configurations have been converted
to use the kconfig-frontends tools.
Bugfixes (see the ChangeLog for details). Some of these are very important:
* Tasking:
- Modify assertion in the priority inheritance logic that is reported
to cause false alarm assertions.
* Kernel Build:
- Typo in syscall proxying logic corrected by Ken Pettit.
* Networking:
- Poll setup/teardown logic should ignore invalid (i.e., negative)
file descriptors (from Max Holtzberg).
- When readahead data is available, the network poll() logic should
set POLLIN (or POLLRDNORM), not POLLOUT (from Max Holtzberg).
* LCD Drivers:
- Correct power controls in the MIO283QT2 LCD driver.
* USB Device Controller Drivers:
- Change the default IN request buffer size from 64 to 96. This will
avoid requests of exactly MAXPACKET size and, hence, avoid so many
NULL packets. Also, fix the OUT request buffers size to exactly the
max packet size. It really cannot be any other size.
* STM32 Drivers:
- Correct some bad STM32 F1 DMA definitions that crept into the system
a few months ago a broke STM32 F1 DMA (from Laurent Latil)
- Fixed an error in NULL packet handling in the STM32 F1 USB device
controller driver: If the NULL-packet needed flag ever got set,
then it was not being cleared and infinite NULL packets resulted.
This only affects the CDC/ACM class and was the cause of the
failures using the USB CDC/ACM device as a NuttX console. With this
change the USB works well as an alternative NuttX console device for
the STM32 F1 family.
- Correct some bad condition compilation in the RCC logic (CONFIG_
missing from setting names). This affects some STM32 FLASH pre-
fetch settings (from Lorenz Meier).
- Change for hardware flow control support for STM32. The change also
fixes incorrect operation of USART2 and UART5 in current master
(from Lorenz Meier and Mike Smith).
- Fixed a backward conditional in USB OTG FS host controller driver
that prevented detection of disconnection events (from Scott).
* LPC17xx Drivers:
- I2C interrupt control. Also correction for a single byte read
timeout error (from M. Kannan).
* Freescale Kinetis:
- Freedom KL25Z pin multiplexing and LED control corrections (from
Alan Carvalho de Assis)
* PIC32MX:
- Fix NULL packet handling in the PIC32 USB device driver. Without
this fix the CDC/ACM driver cannot be used reliably with the PIC32
USB. With this change the USB works well as an alternative NuttX
console device.
* Graphics:
- Default priorities for NxWidget and NxWM threads should be 100,
not 50, to be consistent with other default priorities.
* Applications:
- Remove the CONFIG_EXAMPLES_NXTEXT_NOGETRUN option from the NXTEXT
example. The test logic was bad for the case where this options is
not selected. Also, completed the empty Kconfig file.
- C++ name mangling was occurring when this example is built as an NSH
built-in application causing the entry to be undefined when called
from C code.
- Add some missing NSH library configuration values (from Lorenz
Meier).
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
NuttX-6.29
----------
The 96th release of NuttX, Version 6.29, was made on July 31, 2013,
and is available for download from the SourceForge website. Note
that release consists of two tarballs: nuttx-6.29.tar.gz and
apps-6.29.tar.gz. Both may be needed (see the top-level nuttx/README.txt
file for build information).
Additional new features and extended functionality:
* Drivers:
- Generalized the SSD1306 driver and added support UG-2832HSWEG04
which is very similar to the existing support for the
UG-2864HSWEG01.
- Added support for a generic bit-bang SPI driver. This includes
both a common "upper half" driver as well as a platformp-specific
"lower half" dirvers based on a common "template."
* ARMv7-A, Cortex-A5
- Added support for the ARMv7-A architecture and the Cortex-A5 in particular.
* ARMv7-M, Cortex-M3/4
- Modified how some registers are copied during a context switch (with
lazy FPU register saving). This should save some context switching
time when the context switch is due to interrupt level processing.
* STM32:
- Added support for a separate CCM heap. This may be useful for
segregating allocations for CCM (which cannot be used for DMA)
from other allocations (that may be used used for DMA).
* STM32 Drivers:
- DAC: Added support for DAC DMA (contributed by John Wharington).
- I2C: An I2C driver for the STM32 F3 family (from John Wharington).
* Atmel AT91 SAM/4:
- Add support for SAM3X and SAM3A chips
* Atmel AT91 SAM/4 Drivers:
- Re-architect the SAM3/4 SPI driver so that is it compatible with the
SPI drivers of other MCUs.
- Added register definition file for the SAM4L LCD peripheral.
- Added SAM4L PDCA register definition file
* Atmel AT91 SAM/4 Boards:
- SAM4L-Xplained: Added support for the SPI-based SD card on the I/O1
module.
- SAM4L-Xplained: Added a driver for the LED1 segment LCD module.
- SAM4L-Xplained: Added support for the UG-2832HSWEG04 OLED on the
SAM4L Xplained Pro's OLED1 module
- SAM4S-Xplained: Added support for on-board 1MB SRAM
- Arduino Due: Basic support for the Arduino Due (SAM3X) is now
included.
- SAM3U-EK: The touchscreen is now functional.
* Atmel AT91 SAMA5D3
- Added support for the Atmel AT91SAMA5D3 Cortex-A5 chip family.
* Atmel AT91 SAMA5D3 Boards
- Added support for the Atmel SAMA5D3x-EK boards which use the AT9
SAMA5D3x chips (x=1,3,4,5).
* Freescale KL25Z Drivers
- Freescale KL25Z TSI register definitions and example TSI driver for
the Freedom KL25Z board from Alan Carvalho de Assis.
- Added SPI driver and register definitions for the Freescale KL25Z.
- Added a framework for controlling SPI-related discrete inputs and
outputs. Taken from work by Alan Carvalho de Assis
* Build System:
- New sub-directories to hold SPI-related files: includes/nuttx/spi.h
moved to include/nuttx/spi/.; SPI-related Kconfig info moved from
drivers/Kconfig to drivers/spi/kconfig.
- Finally... I changed the naming of configuration variables like
CONFIG_DRAM_ to CONFIG_RAM_. This has bothered me for a long time
since most boards don't have DRAM. The more generic RAM naming
should not produce so much cognitive dissonance
* Libraries:
- Added CRC16 support.
* Applications:
- Added Zmodem file transfer support. This may be used as an embedded
library or may be built as 'sz' and 'rz' commands that can be
executed from NSH.
- C++ initializers should be set once and, preferably, in the context
of the task that uses any C++ statically initialized classes. This
only becomes an issue if cxxtest or helloxx are built as NSH builtin
applications. Then you want the initialization done in cxxtext or
helloxx and not in NSH (and certainly not twice). Added
configuration options to control who does the C++ initialization.
NSH now does not do C++ initialization be default and must be
configured to do otherwise. Conversely, cxxtest and helloxx
will always do C++ initialization unless configured do otherwise.
- examples/cxxtext: Add ostream test as provided by Michael.
- NSH: Added a 'cmp' command that can be used to compare two files
for equivalence. Returns an indication if the files differ.
Contributed by Andrew Tridgell (via Lorenz Meier).
Efforts In Progress. The following are features that are partially
implemented but present in this release. They are not likely be be
completed soon.
* Audio System:
- A complete audio subsystem include CODECs, higher level management,
interface definitions, and audio drivers was contributed by Ken
Pettit. This work has not been completely verified as of this
release and so is categorized as a work-in-progress. At present,
progress is blocked due to issues interfacing with the VS1053
audio DAC on the Mikroe STM32F4 board.
* kconfig-fronted Configuration:
- Conversion of old configurations to use the kconfig-frontends
tool is an ongoing effort that will continue for some time.
At this time, only 45% of the configurations have been converted
to use the kconfig-frontends tools.
Bugfixes (see the ChangeLog for details). Some of these are very important:
* File Systems:
- Fixed compilation error if no file systems are enabled: Change
error to ERROR.
- Read-Ahead/Write buffering: Correct typos that can cause failures
in some configurations (From Chia Cheng Tsao).
* Drivers
- Remove the wait for the touchscreen busy bit in the ADS7843E driver.
From my reading of the ADS7843 spec, it would not be appropriate to
wait for the BUSY bit to de-asserted anyway (since it is only de-
asserted when we read the data). Most boards do not even bother to
provide the BUSY bit.
- MMC/SD SPI based driver: Driver needs to make sure that the SPI
mode and data width are correct.
- ENC28J60: Change buffer ordering to work around Errata. From Dave
(ziggurat29).
* USB Device Controller Drivers:
- Fixed a typo in the composite device driver unitialization logic.
DEV1 should be DEV2 in one case.
- usbdev.h: Fix some typos that cause compiler errors when
CONFIG_USBDEV_DMA and CONFIG_USBDEV_DMAMEMORY are selected (From
Chia Cheng Tsao).
* ARM9:
- Fix a bug (uninitialized register error) that crept in the ARM9
boot-up code several years ago. Obviously no one has used the
ARM9 NuttX port for years!
* STM32 Drivers:
- Fix STM32 OTF FS endpoint allocation logic. Apparently the same
endpoint can be allocated as both an IN or an OUT endpoint. The
existing implementation only supported one allocation, either IN or
OUT. This resulted in failures to allocate endpoints when used with
the CDC/ACM + MSC composite driver (From Chia Cheng Tsao).
- SDIO: Add support for the data block end (DBCKEND) interrupt to
terminate transfers (From Chia Cheng Tsao).
- DAC: Fixed numerous DAC driver errors and added support for DAC
DMA (contributed by John Wharington).
* SAM3/4:
- SAM4S: Correct configuration of PIO pins for SAM4S B and C peripherals.
- Need to disable write protection before configuring PIO pins.
- GPIO configuration logic must protect against re-entrancy.
- Clocking must be applied to the SMC module for the 3X and 3A family in
order for the NFC SRAM to be functional.
- Fixed some errors for interrupts on ports D-F.
* SAM3/4 Drivers:
- Common SPI driver: Fix SPI mode setting. In the SAM3/4 family, the
clock phase control (CPHA) is inverted (NPHA). Also fixed an
incorrect pointer test. Was checking if the wrong pointer was NULL.
* SAM3/4 Boards:
- SAM3U-EK: Fix polarity of the /PENIRQ signal (it is active low).
The SAM3U-EK board now runs at 96MHz.
* Applications:
- apps/examples/nxhello: Minor fix for compilation error when the
display resolution is low (< 8bpp) due to a typo that has been there
for a long time. Also Correct default colors when in Y1 code mode.
- apps/system/ramtest: The RAM test was not correctly built
into the configuration and build system.
- apps/examples/composite: Change to prevent some false alarm debug
assertions (From Chia Cheng Tao).