Latest VSOS Kernel (3.66) available here

Discussion about writing software for VS1005 and the VSOS Operating System. Also posts about VS1005-related hardware design and device drivers should be posted here.
User avatar
Henrik
VLSI Staff
Posts: 1298
Joined: Tue 2010-06-22 14:10

VSOS Kernel 3.50 (as a part of VSIDE 2.43)

Post by Henrik »

Dear Forum members,

it has been a while since we last released a new version of VSOS. But this time it's going to be a big update, allowing compatibility with forthcoming VS1005 series ICs and smaller executable files. So, attached to this message is VSIDE version 2.43 which contains templates for VSOS 3.50.

We have put a lot of time and effort to create a version of VSOS where applications can be both small, efficient, as well as compatible between VS1005g, as well as future VS1005 series ICs like VS1005h. All of this can be achieved with VSOS 3.50.

By default, applications compiled with the new VSIDE 2.43 require VSOS 3.50 or newer to run. If you need to compile programs that are compatible with VSOS 3.45 or older, read the following post!
viewtopic.php?f=13&t=2203#p11643

If you are prepared to update to VSOS 3.50, then you will be able to recompile your applications and either get them running in smaller space, or make them independent of the VS1005 version you are using. Instructions for how to make your applications independent of VS1005 version are included in the following post:
viewtopic.php?f=13&t=2203#p11644

Instructions on how to select the correct project template for a new project is provided in the following post:
viewtopic.php?f=13&t=2203#p11645

There is a new set of the VSOS Root Image and Solutions package, which will be released tomorrow.

So, have fun, and let us know of any issues!

Kind regards,
- Henrik

PS. Don't forget to test the übercool text editor zoom feature! While in the VSIDE text editor, you can now zoom in or out by pushing Ctrl and rolling your mouse scroll wheel back and forth.
Attachments
vside_win32_v243.exe
VSIDE 2.43, including templates for VSOS 3.50 for VS1005g.
(14.69 MiB) Downloaded 822 times
Good signatures never die. They just fade away.
User avatar
Henrik
VLSI Staff
Posts: 1298
Joined: Tue 2010-06-22 14:10

Root images and Libraries Source Code for VSOS 3.50

Post by Henrik »

Hello!

Attached to this message are the Root Images and Libraries with Source Code for VSOS 3.50. Do note that they have all been compiled with the new VSIDE tools that allow for smaller binaries, so they all require VSOS 3.50 or higher to run, even if the README.TXT files are not in some cases updated!

Technically speaking these are all compiled as VS1005h Solutions / Projects. But don't be alarmed: Because of VSOS 3.50's new IC version independent software loader, they run on VS1005g, too! (There is one exception: old versions of the I2S drivers are offered in the SYS/ directories. Do not try to recompile them yet.)

This is a big change in software architecture. There is compatibility between ICs with different ROM versions. The new binary format is generally smaller than the old one, in some cases even significantly (amongst other things, Panu added BSS support to the linker and loader). This in turn will allow more programs on the 1 MiB / 2 MiB Internal / External Flash. We have tested the new programs between VS1005 versions, and everything seems to work. Still, there may be new bugs lurking, so if you find something that seems broken or out of the ordinary, please let us know!

Kind regards,
- Henrik
Attachments
VSOS_350_RootAndLibrariesSourceCode.zip
VSOS 3.50 Root images and Libraries with Source Code
(7.99 MiB) Downloaded 850 times
Good signatures never die. They just fade away.
User avatar
Henrik
VLSI Staff
Posts: 1298
Joined: Tue 2010-06-22 14:10

VSOS Kernel 3.51

Post by Henrik »

Dear forum members,

Here are new versions of the VSOS Kernel 3.51. The new kernel allows loading binaries that have chip version specific portions which helps keeping forward compatibility in the future. Also the VSOS root images with source code are provided. Before using these, be sure to install VSIDE 2.43 that was realeased among VSOS Kernel 3.50!

Link to message containing VSIDE 2.43:
viewtopic.php?f=13&t=680&p=11638#p11638

Kind regards,
- Henrik

PS. This is my 1053rd message. VS1053 is a versatile and popular audio decoder that also contains HiFi-quality A/D converters as well as high-quality Ogg Vorbis / PCM encoding capabilities. It was also our first chip to decode AAC-LC profiles and FLAC.
Attachments
VSOS_351g_ExtFlash.zip
VSOS 3.51 for 2 MiB external flash.
(262.34 KiB) Downloaded 699 times
VSOS_351g_IntFlash.zip
VSOS 3.51 for 1 MiB internal flash.
(262.23 KiB) Downloaded 745 times
VSOS_351_RootAndLibrariesSourceCode.zip
VSOS 3.51 root images as well as source code for the applications and libraries.
(8.2 MiB) Downloaded 794 times
Good signatures never die. They just fade away.
User avatar
Henrik
VLSI Staff
Posts: 1298
Joined: Tue 2010-06-22 14:10

Re: Latest VSOS Kernel (3.52) available here.

Post by Henrik »

Hello!

Here's another fast update. In some cases inserting an SD card with an unknown file system could lead to file descriptors disappearing which would practically lock up the system. This would particularly happen with HiResRec if an exFAT-formatted SD card was inserted. VSOS 3.52 corrects for this. As before, use the latest VSIDE 2.43 to compile the new VSOS. VSIDE is available in this message:
viewtopic.php?f=13&t=680&p=11638#p11638

Format.dl3 has been enhanced: before it could not format disks that contained unknown file systems like exFAT, which kind of defeated its purpose, but this has now been corrected.

Kind regards,
- Henrik
Attachments
VSOS_352g_ExtFlash.zip
VSOS 3.52 for 2 MiB external flash.
(262.47 KiB) Downloaded 716 times
VSOS_352g_IntFlash.zip
VSOS 3.52 for 1 MiB internal flash.
(262.25 KiB) Downloaded 726 times
VSOS_352_RootAndLibrariesSourceCode.zip
VSOS 3.52 root images as well as source code for the applications and libraries.
(8.24 MiB) Downloaded 1339 times
Good signatures never die. They just fade away.
User avatar
Henrik
VLSI Staff
Posts: 1298
Joined: Tue 2010-06-22 14:10

Re: Latest VSOS Kernel (3.53) available here.

Post by Henrik »

Hello!

Another week, another update to the VSOS Kernel.

VSOS Kernel v3.53 has a speed optimization when writing long cluster chains to a FAT32 device, which makes it snappier when the new HiRes Recorder application finalizes its audio files. If you don't use the HiRes recorder, you probably don't need to update to this version.

Whether you update the kernel to 3.53 or not, you might want to have a look at some updated utilities in the VSOS Root and Libraries with Source Code Package:
  • Dir has a new -v verbose option that lets the user look through the cluster chains of files (useful for debgging).
  • DiskFree has a new double verbose -v -v option that shows the allocation map of a disk.
  • FatInfo has some bug fixes.
  • The SDSD and SDSD23 driver sets handle removing and reinserting SD cards more gracefully.
Enjoy!

Kind regards,
- Henrik
Attachments
VSOS_353g_ExtFlash.zip
VSOS 3.53 for 2 MiB external flash.
(263.02 KiB) Downloaded 695 times
VSOS_353g_IntFlash.zip
VSOS 3.53 for 1 MiB internal flash.
(262.83 KiB) Downloaded 700 times
VSOS_353_RootAndLibrariesSourceCode.zip
VSOS 3.53 root images as well as source code for the applications and libraries
(8.26 MiB) Downloaded 825 times
Good signatures never die. They just fade away.
User avatar
Henrik
VLSI Staff
Posts: 1298
Joined: Tue 2010-06-22 14:10

Appending and Updating files corrected

Post by Henrik »

FYI,

we have internally solved two long-standing issues that have been nagging our file system operations:
  • Seeking in files that are being written to.
  • Updating and appending to files: in addition to modes "r" and "w", fopen() can now also handle "w+", "r+", "a", and "a+".
With these changes to VSOS, it is now possible to seek in the file that is being written to, and e.g. correct headers to match the file.

These changes are now being tested, and will be included to our next VSOS release. But if someone needs the new features now, let us know in a separate thread, and we will make a test release sooner.

Kind regards,
- Henrik
Good signatures never die. They just fade away.
User avatar
Henrik
VLSI Staff
Posts: 1298
Joined: Tue 2010-06-22 14:10

Re: Latest VSOS Kernel (3.54) available here.

Post by Henrik »

Hello!

Still going on with frequent updates of the VSOS kernel. New things for VSOS 3.54:
  • Seeking in files that are being written to supported.
  • Updating and appending to files supported: in addition to modes "r" and "w", fopen() can now also handle "w+", "r+", "a", and "a+".
    Note that writing to the centre of the file may be slow if either:
    • Writes are not aligned with 512 bytes.
    • Write size is not a multiple of 512 bytes.
  • Symbols added for more efficient Ogg Vorbis encoder.
Note that the new file features are still somewhat experimental, so if you use them, make sure to do it on non-critical disks and on non-critical data first. And if you run into trouble, let us know!

There are no significant changes in the VSOS Root and Libraries Source Code package, except that the HiRes Recorder and documentation for the VSOS Shell has been updated.

Kind regards,
- Henrik
Attachments
VSOS_354g_ExtFlash.zip
VSOS 3.54 for 2 MiB external flash.
(264.46 KiB) Downloaded 740 times
VSOS_354g_IntFlash.zip
VSOS 3.55 for 1 MiB internal flash.
(264.25 KiB) Downloaded 767 times
VSOS_354_RootAndLibrariesSourceCode.zip
VSOS 3.55 root images, source code for the applications and libraries, and documentation
(8.26 MiB) Downloaded 915 times
Good signatures never die. They just fade away.
User avatar
Henrik
VLSI Staff
Posts: 1298
Joined: Tue 2010-06-22 14:10

Re: Latest VSOS Kernel (3.54) available here.

Post by Henrik »

As has been noted in another thread, VSOS 3.54 reports itself as VSOS 3.53. To fix that, you can change the version number in kernel_abs.s from 353 to 354.

Kind regards,
- Henrik
Good signatures never die. They just fade away.
User avatar
Henrik
VLSI Staff
Posts: 1298
Joined: Tue 2010-06-22 14:10

Re: lcd288.dl3 and lcd288v.dl3

Post by Henrik »

Hello!

Attached to this message are current versions of the 2.88" ILI9341 LCD drivers, both horizontal and vertical versions, with source code. They now compile universal binaries and require at least VSOS 3.50 to run. If you need to compile for an older version of VSOS, see the instructions here:
viewtopic.php?f=13&t=680&p=11902#p11638

Kind regards,
- Henrik
Attachments
lcd288.zip
ILI9341 2.88" LCD driver, horizontal orientation.
Compatible with VSOS 3.50 and higher.
(15.22 KiB) Downloaded 698 times
lcd288v.zip
ILI9341 2.88" LCD driver, vertical orientation.
Compatible with VSOS 3.50 and higher.
(15.24 KiB) Downloaded 700 times
Good signatures never die. They just fade away.
User avatar
Panu
VSDSP Expert
Posts: 2829
Joined: Tue 2010-06-22 13:43

VSOS Kernel 3.55

Post by Panu »

Dear VS1005 users,

The VSOS linker that's currently distributed in the VSIDE package generates checksum records in the binaries that it creates, but so far the code to check for those errors has only been included in some experimental kernels when we've had to deal with unreliable memories. Of course it would be nice to check for everything that can possibly go wrong and give meaningful error information to developers. Sometimes you can, sometimes it's too expensive. After all, if you're going to make an operating system that fits into 12 kilowords of RAM you don't want it to do anything that's not absolutely necessary, and my position has been that the correctness of system memory should be trustable as there's no error recovery from its failure.

But upon receiving a failure report that can only be explained by a corrupted binary, I took another look at the error checking code and was able to simplify it significantly. And thus I came to the conclusion that the cost is not too big to include it into the stock kernel code. So here is a new version of VSOS kernel, version 3.55 for both internal and external flash. This version of the kernel checks for bit errors in the file as it is loaded.

As an experiment, I took a working DL3 file, changed one random bit in a hex editor and saved it as "ERROR.DL3". When loaded, the kernel ouputs:
S:>error
E'Corrupt lib ERROR.DL3'
1 fatal errors. Stop.
There's one notable shortcoming in the optimized error checking mechanism: it's done only after loading the file. So when any error is detected, the memory may already be irrevocable corrupted. So that's why, when a loader error is detected, it's a fatal error and execution of the core is stopped. But this should at least give you immediate information about which binary is corrupted so that execution does not continue and generate random and undecipherable errors further on.

Hoping this will be useful,
Panu
Attachments
VSOS_355g_Extflash_and_Intflash.zip
VSOS Kernel version 3.55g. VSIDE Solution with source code.
(520.45 KiB) Downloaded 836 times
Locked