This thread is for course material for VS1005 Basic Course for VLSI distributors, held in Tampere, Finland 23rd-24th of May, 2012.
Welcome to the course!
The first step is to install a new version of VSIDE, which supports VS1005. Please install it from the attached file.
VS1005 Basic Course
VS1005 Basic Course
- Attachments
-
- vside_win32_v211.exe
- (10.92 MiB) Downloaded 1106 times
Info: Line In and Line Out, VS1000 User interface, Overlay howto, Latest VSIDE, MCU Howto, Youtube
Panu-Kristian Poiksalo
Panu-Kristian Poiksalo
Hello, World for VS1005F
Here is a Hello, World solution for running natively in the VS1005F board (without VSOS operating system).
Please extract it into your solutions folder and run it.
Edit: In project options (properties), set the "Debugging" tab's "Memory Description" to the same memory description which is in the linker tab.
Please extract it into your solutions folder and run it.
Edit: In project options (properties), set the "Debugging" tab's "Memory Description" to the same memory description which is in the linker tab.
- Attachments
-
- HelloVS1005F.zip
- (18.21 KiB) Downloaded 940 times
Info: Line In and Line Out, VS1000 User interface, Overlay howto, Latest VSIDE, MCU Howto, Youtube
Panu-Kristian Poiksalo
Panu-Kristian Poiksalo
VSOS Kernel 0.19 for VS1005F Developer Board
Here is the source code for the VSOS Kernel version 0.19 as a VSIDE Project.
Please download and compile the kernel with VSIDE.
If you modify the kernel, you should make a new eeprom image from the modified kernel by running a command (you can put this command into external Tools):(for VS1005F)
Please download and compile the kernel with VSIDE.
If you modify the kernel, you should make a new eeprom image from the modified kernel by running a command (you can put this command into external Tools):
Code: Select all
# eeprom.img generator for VS1005F:
coff2allboot -i vs1005fspi $(TARGETPATH)/$(TARGET) eeprom.img
- Attachments
-
- documentation_with_source_html.zip
- (1.65 MiB) Downloaded 985 times
-
- Kernel_documentation_html.zip
- (1.55 MiB) Downloaded 1114 times
-
- vsos_kernel_019.zip
- VSIDE Solution for VSOS Kernel 0.19
- (963.14 KiB) Downloaded 1128 times
Info: Line In and Line Out, VS1000 User interface, Overlay howto, Latest VSIDE, MCU Howto, Youtube
Panu-Kristian Poiksalo
Panu-Kristian Poiksalo
SPI Flasher for VS1005F External Flash
Here is a VSIDE solution for promming the external SPI flash on the VS1005F developer board.
Please extract the solution to your hard drive. Then get the "eeprom.img" file from the vsos_kernel_019 folder and copy it to the spi flasher's solution folder. Then run the spi flasher solution with VSIDE.
Please extract the solution to your hard drive. Then get the "eeprom.img" file from the vsos_kernel_019 folder and copy it to the spi flasher's solution folder. Then run the spi flasher solution with VSIDE.
- Attachments
-
- VS1005 Developer Board booting VSOS 0.17 from the SPI flash.
- IMG_3270.jpg (515.38 KiB) Viewed 16552 times
-
- vs1005-spiflasher.zip
- Spi flasher for VS1005F external boot spi flash
- (130.1 KiB) Downloaded 1002 times
Info: Line In and Line Out, VS1000 User interface, Overlay howto, Latest VSIDE, MCU Howto, Youtube
Panu-Kristian Poiksalo
Panu-Kristian Poiksalo
Kernel Headers for VSOS 0.19
After you have flashed the kernel into the SPI flash of your board, you can run a "Hello, World" Application on the board. You can find it in the VSIDE, in VSOS Solutions -> Hello, World application for VSOS.
Compile the application in VSIDE. It will generate an APP file named something like "MYAPP.APP" in the solution folder. rename it to INIT.APP and put it in the SD card and reset the board to load and run it.
After running the Hello, World application, you can modify it. To access more advanced features, you will need the kernel headers in the VSIDE VS1005 library folder. Here is a collection of kernel headers for the VSOS version 0.19. Please extract the files into the vside\libvs1005 folder. Overwrite any older files with the files from this package.
Compile the application in VSIDE. It will generate an APP file named something like "MYAPP.APP" in the solution folder. rename it to INIT.APP and put it in the SD card and reset the board to load and run it.
After running the Hello, World application, you can modify it. To access more advanced features, you will need the kernel headers in the VSIDE VS1005 library folder. Here is a collection of kernel headers for the VSOS version 0.19. Please extract the files into the vside\libvs1005 folder. Overwrite any older files with the files from this package.
- Attachments
-
- headers_019.zip
- VSOS Headers 0.19
- (65.14 KiB) Downloaded 1670 times
Info: Line In and Line Out, VS1000 User interface, Overlay howto, Latest VSIDE, MCU Howto, Youtube
Panu-Kristian Poiksalo
Panu-Kristian Poiksalo
GUI Example for VS1005f / VSOS 0.19
Here is a GUI example for VSOS 0.19 that consists of two solutions: AppLauncher and VS1005GuiExample. Please extract the files to your Solutions folder.
AppLauncher shows all .APP files on the SD memory card, then lets the user select one.
VS1005GuiExample is a work-in-progress MP3 player that plays the file S:TEST2.MP3 (on SD card) and let the user control a graphical user interface. It uses an MVC design pattern and is implemented as two threads: one for the Model, another for the View+Controller.
At the moment the code is poorly commented.
AppLauncher shows all .APP files on the SD memory card, then lets the user select one.
VS1005GuiExample is a work-in-progress MP3 player that plays the file S:TEST2.MP3 (on SD card) and let the user control a graphical user interface. It uses an MVC design pattern and is implemented as two threads: one for the Model, another for the View+Controller.
At the moment the code is poorly commented.
- Attachments
-
- VS1005GuiExample.zip
- (2.05 MiB) Downloaded 1063 times
Good signatures never die. They just fade away.
LCD and touchscreen test
Some LCD testing code...
Code: Select all
/* For free support for VSIDE, please visit www.vsdsp-forum.com */
// This is a starting point template for VS1005 VS0S App.
#include <vo_stdio.h>
#include <vsos.h>
#include <lcd.h>
#include <touch.h>
#define RGB(a,b,c) __RGB565RGB(c,b,a)
void main(void) {
u_int16 myTexture[10*10];
u_int16 i,x,y;
printf("Hello, world!\n");
LcdFilledRectangle(0,0,lcd0.width-1,lcd0.height-1,0,RGB(0,255,0));
LcdFilledRectangle(10,10,lcd0.width-11,lcd0.height-11,0,RGB(0,0,255));
for (y=0;y<10;y++){
for (x=0; x<10; x++) {
myTexture[y*10+x] = RGB(x*10,0,y*10);
}
}
lcd0.textColor = RGB(255,255,80);
lcd0.backgroundColor = RGB(0,0,255);
lcd0.x = 20;
lcd0.y = 20;
printf("LCD RESOLUTION:");
lcd0.x = 20;
lcd0.y = 30;
printf("Width:%d, Height:%d.",lcd0.width,lcd0.height);
for (x=0; x<10; x++) {
LcdFilledRectangle(x*10+50, 200, x*10+59, 209, myTexture, 0);
}
while (1) {
if (GetTouchLocation(&x,&y)){
LcdFilledRectangle(x,y,x,y,0,COLOR_WHITE);
}
}
}
/*
for (i=0; i<256; i++) {
LcdFilledRectangle(i,150,i,190,0,__RGB565RGB(i,0,0));
}
*/
Info: Line In and Line Out, VS1000 User interface, Overlay howto, Latest VSIDE, MCU Howto, Youtube
Panu-Kristian Poiksalo
Panu-Kristian Poiksalo
Schematic of the VS1005F Developer Board
Schematic of the VS1005F Developer Board, version 1.5
- Attachments
-
- vs1005dev_disp10_sch.pdf
- Schematics of the display daughterboard
- (877.61 KiB) Downloaded 1061 times
-
- vs1005dev15.pdf
- (3.06 MiB) Downloaded 1173 times
Info: Line In and Line Out, VS1000 User interface, Overlay howto, Latest VSIDE, MCU Howto, Youtube
Panu-Kristian Poiksalo
Panu-Kristian Poiksalo
MVC model of MP3 player in VSOS
The VSOS defines a "Model-View-Controller" (MVC) approach for writing applications on the VSOS.
In MVC, the "Model" is the part of software, which does the functionality of the application, such as MP3 decoding, signal processing and so on.
The View and Controller parts implement the user interface. They are separate from the model, so you will not need to touch the model if the user interface changes. You can for example take a ready implementation of an mp3-playermodel, which has the capability of opening files, playing, seeking, stopping and fast-forwarding. Then you can make your own user interface, which commands the model to start and stop playing.
To be able to make such an application, you don't need to know how the MP3 player functions work. You will only need to know how to send PLAY and PAUSE messages to the model.
And the best part is that if your user interface changes, or you target a completely different device, for instance a device which has just buttons instead of touch screen, you will never need to rewrite the mp3-playermodel.
In MVC, the "Model" is the part of software, which does the functionality of the application, such as MP3 decoding, signal processing and so on.
The View and Controller parts implement the user interface. They are separate from the model, so you will not need to touch the model if the user interface changes. You can for example take a ready implementation of an mp3-playermodel, which has the capability of opening files, playing, seeking, stopping and fast-forwarding. Then you can make your own user interface, which commands the model to start and stop playing.
To be able to make such an application, you don't need to know how the MP3 player functions work. You will only need to know how to send PLAY and PAUSE messages to the model.
And the best part is that if your user interface changes, or you target a completely different device, for instance a device which has just buttons instead of touch screen, you will never need to rewrite the mp3-playermodel.
- Attachments
-
- MP3-MVC.jpg (48.84 KiB) Viewed 16692 times
Info: Line In and Line Out, VS1000 User interface, Overlay howto, Latest VSIDE, MCU Howto, Youtube
Panu-Kristian Poiksalo
Panu-Kristian Poiksalo
VSOS Driver Model
Here is a brief presentation about the VSOS driver model and the C object oriented approach to writing kernel code for the VSOS.
- Attachments
-
- VsOsDriverModel.pdf
- (258.6 KiB) Downloaded 1752 times
Info: Line In and Line Out, VS1000 User interface, Overlay howto, Latest VSIDE, MCU Howto, Youtube
Panu-Kristian Poiksalo
Panu-Kristian Poiksalo