11-11-2009 01:34 PM
I am using Xilinx XPS/SDK v10.1. When I attempt to build with uC/OS-II operating system support, I ultimately see build errors like "ERROR:MDT - xget_value PARAMETER handler : A NULL handle was provided". This error is not very descriptive, I have searched the web and Xilinx help files thoroughly on this error type, but need help.
Here is the jist of what I am doing:
+ load my project which does not use uCOS-II (it uses "standalone") into XPS
+ run Software / Generate Libraries and BSPs to build software (everything builds fine)
+ in XPS, launch Software Platform Settings dialog (by choosing the Software menu / Software Platform Settings)
+ under OS & Library Settings, select "uCOS-II" for my operating system (this required pointing at my source on disk, which I figure was done correct because this option showed up in the drop menu)
+ now if I run Software / Generate Libraries and BSPs, I get the error like below
Running generate for OS'es, Drivers and Libraries ...
ERROR:MDT - xget_value PARAMETER handler : A NULL handle was provided
ERROR:MDT - uCOS-II () - expected integer but got ""
"xget_value $entry "PARAMETER" "handler""
(procedure "xcreate_mb_exc_config_file" line 119)
invoked from within
"xcreate_mb_exc_config_file $extable $os_handle"
(procedure "::sw_uCOS-II_v2_86_a::generate" line 85)
invoked from within
Copying Library Files ...
ERROR:MDT - Error while running "generate" for processor microblaze_0...
make: *** [microblaze_0/lib/libxil.a] Error 2
I get the same error if I use alternate method of launching the project in the SDK and performing "Build Project". That results in the same types of errors.
Is there something I'm missing about configuring my project settings, etc? I'm new to the Xilinx tools.
Solved! Go to Solution.
11-11-2009 03:05 PM
I'd consider this to be a bug, in this case in uCos library.
The way the Xilinx software flow works is that you create an MSS file that lists all the drivers + libraries you want. Each of those libraries might have some options, and these are also there in the MSS.
Using libgen, you then try to create a library out of all these drivers & libraries. When libgen runs, each library tries to go and read your hardware information, or your software options through TCL API's. When this TCL code cannot cope with certain conditions, you just see a runtime stack trace instead of a proper error message. It just indicates a setting the TCL author did not forsee.
In your case, the relevant stack trace is:
xcreate_mb_exc_config_file $extable $os_handle
xget_value $entry "PARAMETER" "handler"
So it looks like ucos library is trying to create an MB exception config file, and that requires a parameter called "handler". I suspect you don't have that defined in your MSS file. If you have an example ucos design, check its MSS file to see if it defines a handler, and then compare it with yours.
11-11-2009 04:10 PM
Thanks for the info! I eventually found the part of the .tcl script where it was looking for "handler". I do not see the term "handler" in my MSS file. However, I _do_ have a reference project which sucessfully uses uC/OS-II on the same development PC. I have reviewed both MSS files and don't see any interesting differences. I'll post an update later tomorrow.
11-11-2009 11:04 PM
can you send me the refernece project on my id because i have reference project but it has been implemented in EDK 6.1 which altough updated itself when i tried to run it on EDK 10.1, still it causes many errors.Moreover while creating my own project ,it gives such errors
In file included from /cygdrive/c/Micrium/Software/EvalBoards/Xilinx/Gen
./microblaze_0/include/bsp.h:19:22: error: xintc.h: No such file or directory
./microblaze_0/include/bsp.h:20:24: error: xintc_i.h: No such file or directory
./microblaze_0/include/bsp.h:21:24: error: xintc_l.h: No such file or directory
make: *** [system/executable.elf] Error 1
can you tell me how this error can be resolved if u did work on this OS?
11-12-2009 07:31 AM
When you ask to see the project, which files do you need?
My first reaction to your errors is there is some problem with include paths. There are software project settings I found where you can indicate include paths. But in my example of a project that actually works with uCOS-II, they don't use a bunch of include paths. Is there any other way to have includes, perhaps in the environment (SDK) for all projects?
11-12-2009 07:38 AM
I don't see compiler options in my IDE.
What I had to do was use Platform Studio to adjust Project Options / Advanced Options / Project Peripheral Repository and pointed that at the base folder with some OS stuf related to my uCOS-II (a few source files, .s files, and a .tcl script, which seems to be what is blowing up in my build). After I pointed the Hardware project to this stuff, The software project options ("Software Platform Settings"), I was able to choose uCOS-II.
But when I choose uCOS-II, the build bombs out. There are a few OS settings that I have attempted to mimmick from a working project, to no avail.
11-12-2009 08:43 PM
i meantthe whole working project ,it is so because i wanted to see all the settings to make my project to run.I can also select micocii as os from software platform settings.I am trying to run app.c ,hopefully u aleady know this basic application to run and test on EDK while using microcii.I used micrium pdf file for setting up this OS to work.
11-18-2009 10:50 AM