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.
Locked
User avatar
Panu
VSDSP Expert
Posts: 2829
Joined: Tue 2010-06-22 13:43

Latest VSOS Kernel (3.66) available here

Post by Panu »

This thread is for releasing new versions of the VSOS Kernel. The latest kernel is at the last message, but please read the infos so that you get the most complete picture on how to install and use the kernel.


VSOS KERNEL 0.20 FOR VS1005G DEVELOPER BOARD

Dear Forum Followers,

It's my pleasure to announce the release of version 0.20 of VSOS, the VLSI Operating System for VS1005 devices, and the availability of VS1005G Developer Boards (http://www.vlsi.fi/en/support/evaluatio ... board.html), which can be now bought from the VLSI Web Shop. The new developer boards have a VS1205G device installed, which has no restrictions on the code to run.

With the 0.2 series kernel, VSOS has a major improvement: if you modify the kernel, for example to change the kernel display device driver, you no longer need to recompile the application binaries! So now it's possible to have pre-compiled, binary applications in the SD card you can run on many VSOS series 0.2 kernels with different device drivers and displays. And if you give out a program for testing, you don't need to give the source code and the VSIDE solution, you can just give the binary app file.

Series 0.2 kernels have a common calling convention between the kernel and apps, which is defined in file vsos02.abs in the kernel and vsos02.o in the applications. With series 0.2 kernels, it's possible to deploy multitasking applications such as MP3 players, but with the current device drivers it's necessary to avoid hardware conflicts between device instances in different threads. In English it means, that currently you can't have a storage device in the same bus that you have the display. Today's version 0.20 is safe, because the only supported device for a system disk is the SD card, which is in its own bus and doesn't share pins with any other device. Hardware resource protection will be introduced in the future in series 0.3 of the kernel. Now we will continue to write more device drivers for different devices, and you're most welcome to help us!

Please download the VSIDE version 2.13 from the link below. It contains templates for building the kernel and applications for VS1005G running VSOS 0.20. Now it's time to have a small summer holiday and then we will continue with the development and documentation.

Released now for the VS1005G devices, the VSOS 0.20 kernel contains functionality to access the MP3 decoder in VS1005G ROM. Full source code and binaries is given for the kernel and 3 VSOS applications: Hello, World; Main Menu and an MP3 player application, which demonstrates the VSOS's Model-View-Controller model of calling the MP3 player and providing it an user interface using the included SimpleButtons library and a touch screen. More VSOS applications and documentation will be posted in the forum as we get them running. You're also invited to share your developments with us!

Have fun and have a great summer!
-Panu
Attachments
vside_win32_v213.exe
VSIDE version 2.13 (includes VSOS 0.20 for VS1005G). Note that this version does not support VS1005F. If you have existing VS1005F projects, you need to copy the "libvs1005" folder from your existing VSIDE installation to the 2.13 installation to be able to compile your existing VS1005F solutions.
(11 MiB) Downloaded 4167 times
User avatar
Panu
VSDSP Expert
Posts: 2829
Joined: Tue 2010-06-22 13:43

VSOS version 0.21 for VS1005G

Post by Panu »

VSOS KERNEL 0.21 FOR VS1005G DEVELOPER BOARD

Updates for version 0.21:

Installation:
  • You need VSIDE version 2.13 (get it from the link in the previous message) to use and compile this kernel.
  • Option 1) Build the kernel and use VSIDE menu "Project" -> "Prommer/Flasher Utility" -> "VS1005G External SPI Flash Prommer" to burn the eeprom.img to the developer board. Remember to keep the "BOOT SELECT" pressed when you press "RESET" to reset the board so that you can write to the external SPI Flash. After promming you can press "Cancel" "Play" "Stop" quickly to exit from the prommer.
  • Option 2) Download the "vs1005g-firmware-preparations.zip" from thread "Flashing a new or bricked VS1005G board" in the Forum (viewtopic.php?f=13&t=681), replace the eeprom.img with this one and follow the .txt instructions.
  • Check that you see "v0.21" on screen when you boot the card.
IMPORTANT
  • To compile applications that use the updated API, you must copy the vsos02.o file to your vside\libvs1005g folder!

Changelog:
  • Fixed FAT reads: due to a small mistake, fread from a file in 0.20 incorrectly read past end of file to the end of the last cluster, which sometimes caused incorrect loading of an APP file, resulting in corrupted functions and random failures of APP. This is now fixed.
  • Fixed FAT writes for multi-cluster writes. Writing large configuration files etc to the SD card should work better now.
  • Todo:Seeking past the end of file doesn't work. If you want to make a file of e.g. 1 megabyte, you must first write a megabyte of empty data into the file. Then you can seek within the megabyte. This will be fixed in the future.
  • Fixed the "SD card in SPI mode" driver a little. It is more robust now. Still writes to some SD cards MAY fail occasionally, so I'd advise to write files only when really needed for the time being. An upcoming "SD card in SD mode" driver will fix this. It will also improve the write speeds a lot, the current driver's write speed is something like 100 kilobytes per second.
  • Included vo_filesystems in the API to allow the application to declare and install custom filesystems.
  • Included __vo_fat_allocationSizeClusters in the API to allow application to select how many FAT clusters to allocate at a time. Default is 1, larger value (e.g. 10) can speed up writing.
Have fun and keep us posted about your development and issues!
-Panu
Attachments
vsos_021.zip
VSOS Kernel 0.21 for VS1005G. You need VSIDE version 2.13 from the link in the previous message to use and compile this kernel.
(352.22 KiB) Downloaded 1283 times
User avatar
Panu
VSDSP Expert
Posts: 2829
Joined: Tue 2010-06-22 13:43

Pre-release info of VSOS version 0.22

Post by Panu »

VSOS KERNEL 0.22 FOR VS1005G DEVELOPER BOARD

Dear Forum Members,

Again it's my pleasure to announce the release of VSOS version 0.22, an important landmark release of VSOS for your testing and application programming. Version 0.22 has many important new features, most notably our new Standard Audio interface, which makes audio in+out programming easier than ever seen before. With the new interface, the code for an application which copies audio from line in to line out can be written simply as:

Code: Select all

#include <vo_stdio.h>
#define BUFSIZE 128

int main(void) {
	static s_int16 myBuf[BUFSIZE];	

	while (1) {
		fread(myBuf, 1, BUFSIZE, stdaudioin);
		fwrite(myBuf, 1, BUFSIZE, stdaudioout);
	}
}
Other new features include loadable kernel modules, generic user interfaces, many new kernel services for applications and new example templates to clarify VSOS application programming and get you started.

To start using VSOS 0.22, please install the latest VSIDE 2.14 from the link below and reflash your developer boards with the new kernel. For instructions, create a new VS1005 solution based on "VSOS kernel 0.22" template and check the readme.txt file which should open automatically.

Update, October 31: Official release.

Updates for version 0.22:

- Added Standard Audio interface (stdaudioin, stdaudioout)
- Removed old MP3 decoder interface, obsoleted by Standard Audio interface
- Updated the MP3 decoder example template to use the new interface
- Added loadable kernel modules
- Added Standard Buttons interface to the kernel, allowing easy creation of graphic user interfaces.
StdButtons are handled by the kernel allowing them to adapt to different input devices and
screen devices with different resolutions and capabilities without changes to the user code.
Stdbuttons support for example different color schemes and custom renderers.
- Added generic user interface module API to allow changing the application look and feel
without recompiling applications, or to allow using entirely different UI devices such as serial ports.
- Added Serial port speed adjustment interface to the kernel
- Added Clock speed adjustment interface to the kernel
- Checked and fixed standard input/output macros (vo_stdio.h)
- Added timing services to the kernel
- Added power control services to the kernel
- Fixed some template build issues when running VSIDE under Linux
- Fixed system state issues when restarting the OS after app exit
- Updated fopen to manage unbuffered files better
- Fixed INIT.APP main menu template 5th button hang issue
- Added several example templates
- Fixed several small issues

Sincerely, Panu

Programmer's Guide: http://www.vlsi.fi/fileadmin/manuals_gu ... _guide.pdf
Attachments
vsos022_sdcard_root.zip
VSOS 0.22 SD card root files (system disk). Unzip this to the SD card. Use folder names so that the SYS subdirectory containing file AU.SYS is created on the SD card.
(4.59 MiB) Downloaded 1911 times
vside_win32_v214.exe
VSIDE Version 2.14 (includes VSOS 0.22), Official Release
(10.5 MiB) Downloaded 1305 times
User avatar
Henrik
VLSI Staff
Posts: 1294
Joined: Tue 2010-06-22 14:10

Re: Latest stable VSOS Kernel (0.22) now available

Post by Henrik »

Dear forum members,

We are proud to present you the official 0.22 release of the VSOS Kernel and its example applications.

The feature list is pretty much the same that Panu wrote above, so I will not repeat it here.

At least for the moment VSOS 0.22 and its example applications are a part of VLSI Solution's VSIDE Integrated Development Environment. To download the latest release of VSIDE with VSOS 0.22 (or whatever the latest stable release will be in the future), have a clickety-click at http://www.vlsi.fi/en/support/software/ ... tions.html .

Happy exploring!
- Henrik
Good signatures never die. They just fade away.
User avatar
Panu
VSDSP Expert
Posts: 2829
Joined: Tue 2010-06-22 13:43

VSOS Kernel 0.23

Post by Panu »

Hi all,

Here's a new release of VSOS with some small but important updates:

Updates for version 0.23:
- Improved the real-time scheduler, fixed AllocMemY
- Improved kernel module calling (added SysCall)
- Fixed power-button delayed reset issue
- Added colorscheme support also for console applications
- Added the capability to prom the OS kernel into VS1005G internal flash

As always, please report any bugs you might find!

-Panu

[2023-02-15: Attachment removed vside_win32_v215.exe: VSIDE 2.15. Includes VSOS Kernel version 0.23 for VS1005G.]
User avatar
Panu
VSDSP Expert
Posts: 2829
Joined: Tue 2010-06-22 13:43

VSOS Kernel 0.24 for SD card and 0.23 for USB

Post by Panu »

Dear Forum Followers,

After a lot of busy days and sleepless nights, it's great to be able to release a new version of VSOS. This new release version 0.24 is binary compatible with earlier 0.2x versions. It contains a new SD card driver, which uses the VS1005 SD controller hardware and FIFO buffers for fast and reliable operation of the SD card. For example, we've measured file writing at 6 megabytes per second.

Other improvements include:
  • Updated audio driver with I2S and S/PDIF output
  • Updated FAT16/FAT32 filesystem driver
  • Hardware locks and resource allocation, required for fast multithreading with new drivers
  • Improved visual style of StdButtons
vsos024.png
vsos024.png (12.43 KiB) Viewed 56281 times
At the same time, we're also releasing an alpha version of VSOS 0.23 with USB Host support.

This branch of the VSOS 0.23 kernel uses a USB memory stick as the "S:" drive (VSOS system disk), allowing you to run apps and play music from a USB memory stick.

VSOS allows multiple disks and there's no problem to have both the SD card and USB disk (with multiple LUNs) visible at the os at the same time, but because our current example mp3 player app is only looking at the "S:" disk for songs, I decided to just make a separate release which just creates the USB disk to drive S instead of the SD card to allow quick testing of the USB driver. The driver is at quite an early stage and we haven't tested it with many memory sticks yet, but it does seem to be stable. We'll integrate the USB driver into the 0.24 branch with some new apps a bit later.

Both kernels are available as templates in the new VSIDE version VSIDE 2.20. The new VSIDE also contains other improvements, such as new template libraries for VS1103 and VS1003 as well as various compiler improvements.

Looking forward to hearing from your experiences,
Panu, VSOS kernel architect.

Edit: v0.24 touch.c has a bug that makes the touchscreen work badly. As a quick fix, take touch.c from VSOS 0.23. We will fix this soon.
Attachments
vside_win32_v220a.exe
VSIDE v2.20 alpha. Contains VSOS kernel 0.24/SD and 0.23/USB.
(10.67 MiB) Downloaded 1313 times
User avatar
Panu
VSDSP Expert
Posts: 2829
Joined: Tue 2010-06-22 13:43

VSOS Kernel 0.241

Post by Panu »

Hi, all.

Here's an update release of the VSOS kernel. The touch screen irregularity of 0.24 has been fixed and the kernel again has some small updates to make the OS more elegant and easier to maintain and modify.

Code: Select all

Updates for version 0.241 (August 2013)
	- Fixed touch.c because 0.24 modifications made the touchscreen unreliable
	- Combined all LCD drivers into the same source template, you can
	  select one LCD driver from the options in lcd.c
	- Added the UART LCD emulator VSOSLcdEmulator.exe Windows binary to the source files
	- Reverted some of the StdButton visual complexity to improve speed
	- Added a return value to LcdInit so the lcd driver can tell if it's 
	  a normal display or a simple/small display (ask to limit drawing complexity)
Attachments
arch-VSOS_0241-2013-08-15-14-28-VSOS_0241.zip
VSOS Kernel 0.241 (VSIDE 2.20 Solution)
(163.58 KiB) Downloaded 1196 times
User avatar
Panu
VSDSP Expert
Posts: 2829
Joined: Tue 2010-06-22 13:43

VSOS3 Kernel 0.305 is available here.

Post by Panu »

Dear Forum Followers!

Here is a long awaited new release of VSIDE. It contains improvements for the IDE tools and two important VSOS kernel releases.

The most important release is the first public beta of VSOS3, which is our brand new microkernel-based operating system for VS1005. The VSOS3 kernel contains a relocating loader and a minimal set of drivers: the S: disk driver (currently SD card) and FAT filesystem that are necessary for loading libraries, device drivers and applications. All other hardware such as different LCD displays, touch screen, buttons, TV out, audio input, and indeed the capability to play other format sounds than MP3, use device drivers and libraries which are loaded as necessary from the S: disk. The S: disk can be SD card, external SPI flash or VS1005 internal flash (although this release just has the kernel for the SD card). As long as the S: disk doesn't change, there is no need to recompile the kernel to use whatever hardware you like! Just load which device drivers you need.

The new kernel opens up new possibilities for VS1005 development. It frees more memory than the VSOS2 kernel, device drivers can be loaded and unloaded as needed. Libraries can be loaded, unloaded and shared between applications. Applications can call or run other applications and return when the called application finishes. Internally, applications, libraries and drivers have the same file format so it's possible to make a library out of an application very easily, sometimes even without recompiling. Libraries can hold complex functionality such as playing a music file of unknown format with a single library call. And large applications can be split into several libraries that are called one after each other.

The new kernel can be programmed normally (Project -> Prommer / Flasher Utility -> VS1005G External SPI Flash Prommer), but when you reset your board you will only see the LCD backlight come up. It's because the new OS uses the UART port as a console by default. Now start "Project -> Start Serial Port Monitoring" so you can see the new OS starting. This is what you see if there is no SD card in the SD card slot:

Code: Select all

VLSI Solution Oy 2012-2013 - www.vlsi.fi

Starting the OS kernel.. 3K buffer memory, 6 files.
 Starting Devices...  E'SD Card not found'
Cannot create SD card device!
 Task   I/O Stack:0010-014f (320w) free=138w
Task   Int Stack:0150-018f ( 64w) free=29w
Task   Net Stack:0190-022f (160w) free=159w
Task    UI Stack:0230-02cf (160w) free=159w
Task DECOD Stack:02d0-03cf (256w) free=255w
fopen:S:CONFIG.TXT
E'No such device'
0 driver(s) loaded.

Load INIT.AP3...fopen:S:INIT.AP3
E'No such device'

AP3 file not found in disk S:.
Nothing to do.
To use the LCD display, you will need a set of device drivers in the SD card. I have included below a set of some device drivers in binary formats. Their source code is also available from VLSI and will be added in VSIDE. There's also the main menu recompiled into INIT.AP3 file, which the kernel will run.

To load the device driver, add a CONFIG.TXT file to S: with the lines:

Code: Select all

# Default configuration
[0]
lcd288
lcdcon
touch288
stdbtch
With this kind of configuration, the system should look and feel much like the old VSOS2, but with the new capabilities of VSOS3, and the ability to update the system by changing the device drives.

This should be enough to get a basic VSOS3 system running. We have a lot of goodies coming up, such as new MP3 player, FM radio receiver and the ability to boot from SPI flash and use USB to copy the apps and device drivers to the SPI flash. But the first step is this new kernel and the VSIDE templates that allow you to build apps, libraries and device drivers.

Also included in the release are VSOS2 kernels 0.241 and 0.250. The 0.250 kernel backports the FAT, SD card and multitasking stability updates of VSOS3 into the VSOS2 kernel line. It is intended for people who are close to releasing a product which uses VSOS2 and don't want to move to VSOS3.

Merry Christmas!

-Panu
Attachments
emulator.zip
Experimental vside\plugins\emulator.system library file that allows seeing raw UART output in the VSIDE emulator Standard I/O windows. Useful with VSOS3, which printf's to raw UART port when no other console drivers have been loaded. Also autodisables VS1005 power button reset when connected, which helps promming and running software on an unprommed VS1005 system.
(209.96 KiB) Downloaded 1072 times
vside_win32_v224.exe
VSIDE V2.24 for Windows. Includes VSOS2 kernel 0.250 and VSOS3 kernel 0.305.
(11.6 MiB) Downloaded 1308 times
DRIVERS.zip
A set of binary VSOS3 drivers to get you started with using VSOS3. Extract these to SD card, make sure that CONFIG.TXT is in the SD card's root and the .DL3 device drivers are in SYS folder of the SD card root.
(107.67 KiB) Downloaded 1092 times
User avatar
Panu
VSDSP Expert
Posts: 2829
Joined: Tue 2010-06-22 13:43

VSOS3 Kernel 0.306

Post by Panu »

Dear Forum Followers,

This is a maintenance update of the VSOS3 kernel beta and VSIDE. Fixes have been made
to the kernel and tools. #pragma interrupt vectors are now supported. UART emulator supports
raw ASCII stdout so you can see the VSOS3 kernel console output if you run the kernel via UART.
Also several VSOS3 device driver templates are added, and a few application templates.

The package contains VSOS3 kernel 0.306. There are two variants. One uses the SD card for the
VSOS system disk (S:). The other one uses external SPI flash for the S: disk and also
implements USB mass storage so you can connect your developer board to PC to format the
flash and transfer apps and device drivers to the flash. Prom the kernel to the SPI flash
normally and then boot the developer board with S1 pressed. Then connect the board to the PC
and wait for the Removable Disk (1.8 MB) to come up. Format it to FAT using your PC. Then create
a SYS folder for device drivers and copy dl3 device drivers, ap3 apps and CONFIG.TXT to the
flash.

The VS1005G external SPI flash prommer now supports SST25VFxxB chips, but there's no S: disk
driver for the SST B chips yet, so you still need to use the SD card with those.

We are looking forward to hearing your reports as we continue at VLSI to add the rest of
the driver and application templates.

Sincerely,
Panu
Attachments
vside_win32_v225b.exe
(11.93 MiB) Downloaded 1658 times
User avatar
Henrik
VLSI Staff
Posts: 1294
Joined: Tue 2010-06-22 14:10

Re: VSOS3 Kernel 0.306

Post by Henrik »

Hello,

the way drivers are activated has changed slightly in VSOS 0.306. Instead of putting the auto-executed functionality of the driver to the main() function, it is put into the init() function instead. Because of this change, many old drivers don't work directly with VSOS 0.306.

Attached to this message are some drivers that have been adapted for VSOS 0.306. Some are compiled directly from the latest VSIDE templates while some are still unpublished code. In a short while we will have source code templates for all the drivers, plus we are adding all the drivers that were available in the previous VSIDE release.

Kind regards,
- Henrik
Attachments
drivers_vsos0306beta.zip
A set of binary VSOS3 / 0.306 drivers to get you started with using VSOS3. Extract these to SD card, make sure that CONFIG.TXT is in the SD card's root and the .DL3 device drivers are in SYS folder of the SD card root.
(85.14 KiB) Downloaded 1172 times
Good signatures never die. They just fade away.
Locked