MicroC/OS-II Port for Analog DevicesBlackfinADSP-BF533This is the MicroC/OS-II V2.70 port for the ADI Blackfin. Specifically it is coded forthe ADSP-BF533 that is included on the ADDS-BF533-EZLITE evaluation board from Analog Devices( P/N 35-000730-01 ), but should also work for other Blackfin processors with minor changes.The code is written for the Crosscore VisualDSP++ V3.1 integrated development environment as provided byAnalog Devices.The code is organized into sub-directories that separate the Test application, Blackfin, EZ-Lite, and uC/OSspecific modules. Only the modified uCOS files are included; the remaining uC/OS modules must be obtained fromMicrium.A VisualDSP++ project file is included at the head of the VisualDSP project directory structure. It is configured to work in this directory structure.The source files are contained in a ZIP file with a fully qualified directory path; therefore you can UnZip to C:\It is assumed that the directory tree is as described in the Micrium app note AN2002with the slight variation that the uC/OS-II version is included in the directory name.C:\Micrium\Software\uCOS-II_V2.70\Ports\ADI_Blackfin\ADDS-BF533-EZLite\VisualDSP++This is the "head" of the VisualDSP++ project directory tree. All project options for included file paths areexpressed in relative terms from here ( ..\..\ ), so if directory levels are added or removed, this must be takeninto account in the project options.I have included the compiled binary EZLiteDemo.dxe file in the Debug subdirectory - so you can run it "out of thebox" inside the VisualDSP++ IDE. To re-compile the code, simply open the EZLiteDemo.dpj project file and select the[Rebuild All] icon in the toolbar.Implementation Notes...- I used the Core Timer as the TickISR source for the OS at 100mS. This is the only interrupt that should causepre-emptive scheduling. If you need faster switches, change the call to CoreTimerInit() in the DemoApp.c file.- All other interrupts do not cause task switching, but can call O/S functions like OSFlagPost(). See Internal_UARTfor sample assembler interrupt handler.- The program runs in Kernel mode. This is accomplished through a technique documented by Analog Devices. Is is implemented in the runtime startup code.- I implemented the absolute minimum hardware setup to support the test app in the VisualDSP++ run-time environment.The entire application runs in internal RAM in the processor. If additional hardware setup is required, it can beplaced in the function CpuInit() located in the file driv_bf533_asm.s. This function is currently empty.Revision History....1.0 Initial release1.1 - Added sample interrupt handler for internal UART. Supplied buffered getchar() and putchar() type functions. - Made tick count a #define for milli-seconds to allow easy mod of O/S task switch timerCopyright...This code is placed in the public domain, and can be distributed freely with no restrictions provided that the headingof each source module file is not modified to remove the credit to the original author.Disclaimer...This program code is provided "as is". There is no warranty, either expressed or implied as to its fitness for use inany application. It is provided only as an example of porting the MicroC/OS operating system to the Blackfin processor.Its use is strictly at the risk of the user. The author will not be liable for any damages direct or consequential relatedto the use of this software including but not limited to loss of profit.……