I am facing a problem related to SYS/BIOS RTOS. which is giving error like "source not found" 0c_int00_noargs() at boot_3.3.c:124 0x0a71a.
it does not print Hello word on console window.
waiting for reply
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
I am facing a problem related to SYS/BIOS RTOS. which is giving error like "source not found" 0c_int00_noargs() at boot_3.3.c:124 0x0a71a.
it does not print Hello word on console window.
waiting for reply
Hi Awais Aslam,
Can you please answer a few questions about your set up?
Awais Aslam said:I am facing a problem related to SYS/BIOS RTOS. which is giving error like "source not found" 0c_int00_noargs() at boot_3.3.c:124 0x0a71a.
This is normal. You should either see a button that is labeled "browse" (for the source file), or "view disassembly." If the code where the PC is at is code that was built for debug then you will be able to open the source file and step through it. If it was not built for debug (e.g. the PC is at the code of some non-debug library) then you will only be able to see the assembly code.
Awais Aslam said:it does not print Hello word on console window.
Did you try looking in the "printf logs" window? You can open this in CCS (assuming you're on CCSv4 or CCSv5) under the menu "Tools -> RTA -> Printf Logs"
Steve
thanks Steven for your kind response. I tried your suggestion but again I did not get any value in printflog window.
I am using EM-cc4306137-900 board
code composer version is 4.2.1.
SYS/BIOS version is 6.32.03.43
XDC tool 3.22.02.27
Hi Awais Aslam,
Thanks for the info.
I just want to confirm that you are working with the SYS/BIOS hello example. Yes?
Can you try reloading the program and putting a break point at main() in the example, at the following line?
System_printf("hello world\n");
Do you ever reach the print statement?
It may also help to zip up your entire project and attach it to this thread.
Steve
Thanks Steve. Let me put this question in another way.
I have installed the code composer V5 now and debug a simple "hello world" example using EM-CC430F6137-900. I faced the same problem again as I told you before. According to your instruction I put a break point in my main code and I have checked the disassembly and then I came to know that pointer could not go into printf section in the disassembly window. Now please tell me what is the reason behind it and how can I fix this this problem. Waiting for reply. Thanks in advance.
Hi Awais Aslam,
Can you please zip up and attach your project to this forum thread?
Thanks,
Steve
Hi Awais Aslam,
Thanks for attaching your project; I was able to inspect your program and I think the reason that you are having problems with SYS/BIOS is because you have not enabled your application to use SYS/BIOS. In order to use SYS/BIOS, you need to have a RTSC enabled CCS project that contains a *.cfg configuration file. You also must call BIOS_start() from within main().
Have you seen the SYS/BIOS Getting Started Guide that came with your installation? I think this guide will be very useful to you and I highly recommend that you read through it and try out the examples in it.
For example it's here on my machine:
C:\ti\bios_6_33_01_25\docs\Bios_Getting_Started_Guide.pdf
Steve
Hi Steven,
I'm also facing the same issue : No source available for "0x800000" .
Am using the TMS320DM8168 EVM board.
I followed your suggestions from this post but am not getting hello world output on console.
It is showing the no source code available .
Please comment on my post...
-Studinstru
Studinstru,
Glad that you solved your issue (as noted here: http://e2e.ti.com/support/embedded/bios/f/355/p/212474/752030.aspx#752030)
Steve
Hi,
Sorry for late reply. I tried your suggestion but did not get any value on console window. I get the value in printflog. please tell me why I do not get any value on console window. Is this because of Jtag. Did I need UART to get value on console window.
See if you are running the available examples of sys /bios then you have to follow the mentioned instructions.
For printing the printf statement on console add #include <stdio.h> ,and after this printf statement write fflsuh(stdout);
I did like this and I got the result.
Hope so It will resolve your issue.
-Studinstru
@Steven,
Though I'm able to run the existing code of SYS/BIOS in CCSv5.1,
But for running "Typical"Prject in ccs,
I got the follolowin error like
Can't find a source file at "/db/vtree/library/trees/avala/avala-p52x/src/ti/sysbios/hal/Hwi_stack.c"
Locate the file or edit the source lookup path to include its location.
Pointer is heating the main function but If I will debugg simultaneously by F5 or F6 ,The above error message is coming on console.
What is the reason behind this ???
If you want I will start the new thread with this question ...
Please do the reply.
-studinstru
Hi Studinstru,
I tried to run the code as per your instruction but could not find any value in the console window. I am using EMCC430F6137RF900 board which is attached to my laptop through MSP-FET430UIF USB debug interface. Does this Debug-interface support STDIO applications.
/Awais
Hi studinstru sggs,
studinstru sggs said:I'm also facing the same issue : No source available for "0x800000"
Are you sure that you have loaded your application onto the DM8168 yet?
This is the starting address typically shown before you have loaded a program. When you do a CPU reset, the PC will be here. Since there's no source file, that's why you would see that message.
studinstru sggs said:I got the follolowin error like
Can't find a source file at "/db/vtree/library/trees/avala/avala-p52x/src/ti/sysbios/hal/Hwi_stack.c"
Locate the file or edit the source lookup path to include its location.Pointer is heating the main function but If I will debugg simultaneously by F5 or F6 ,The above error message is coming on console.
What is the reason behind this ???
This is coming from the console? Can you please make a screen shot and attach it to this thread?
I suspect that this is only due to the BIOS libraries being built for release mode. You may be able to make it go away by configuring your application for debug in your *.cfg file.
Steve
/Awais,
How is your BIOS application configured? Is it configured for xdc.runtime.SysMin?
Are you calling System_flush() after your System_printf() statements?
Steve
Hi,
How can I check the configuration. I only know that I have seen xdc.runtime in my project when I checked a*.cfg file. when I include System_printf() and System_flush() in my code I got the following error.
>> Compilation failure
undefined first referenced
symbol in file
--------- ----------------
System_flush ./task.obj
System_printf ./task.obj
error #10234-D: unresolved symbols remain
error #10010: errors encountered during linking; "hello.out" not built
gmake: *** [hello.out] Error 1
gmake: Target `all' not remade because of errors.
Hi Awais Aslam,
Awais Aslam said:undefined first referenced
symbol in file
--------- ----------------
System_flush ./task.obj
System_printf ./task.obj
I'm a bit confused by this... I thought you mentioned previously that you had tried a SYS/BIOS example which had System_printf() in it and you were able to get the output, albeit in the printf logs window?
If you don't plan to make print calls from Hwis or Swis then you can change your app to use SysStd (please refer to the XDC tools documentation on xdc/runtime/SysStd for more info. It's available in your CCS help)
Awais Aslam said:How can I check the configuration. I only know that I have seen xdc.runtime in my project when I checked a*.cfg file.
You can check the configuration within CCS (the *.cfg file is the configuration). When you use XGCONF to view a configuration, there's a "source" tab at the bottom of it that allows you to view the actual code of it. Or you can open the *.cfg file in a text editor (please see screen shot below).
Steve
Hi,
The code which I have tried and get value in printflog window is given below. Steve I did not get any value "Hello world"on the console window. I tried SYS/BIOS example and simple hello world example without SYS/BIOS but could not make it. I am using EMCC430F6137-900 kit and connect it to my PC with MSP-FET430UIF debugger. Does JTAG support printf command using CC430 microcontroller.
/*
* MSP430 specific Task example.
*
* This example:
*
* 1) prints "Hello world" in main().
*
* 2) increments a counter within a timer interrupt.
*
* 3) every 10 timer interrupts, the timer interrupt handler
* posts a semaphore to awaken a task to perform additional
* work.
*
* 4) prints "10 ticks" from within the task function awakened
* each time 10 interrupts have been serviced.
*
* All output is routed to a log buffer which can be viewed
* using the RTA "Raw Logs" viewer. After loading and running
* the application, launch the Tools->RTA->Raw Logs tool to
* view the logs.
*/
/*
* The msp430.h header is included for referencing P1DIR and P1OUT, used below
* to blink an LED connected to P1.0. Many development boards (e.g.,
* MSP-EXP430F5438, MSP-TS430PN80USB, ...) provide an LED at this port
* location. Because this example can be run on custom development boards, the
* code to control the LED is commented out below. To enable blinking of the
* LED, remove the comments around the modifications of P1DIR and P1OUT. If
* the LED is at a different location, change the port direction, output,
* and bit locations accordingly.
*/
#include <msp430.h>
#include <xdc/std.h>
#include <xdc/runtime/Log.h>
#include <ti/sysbios/BIOS.h>
#include <ti/sysbios/knl/Task.h>
#include <ti/sysbios/knl/Semaphore.h>
/* Semaphore handle defined in task.cfg */
extern const Semaphore_Handle mySem;
/* Counter incremented by timer interrupt */
volatile UInt tickCount = 0;
/*
* ======== main ========
*/
Void main()
{
/*
* Uncomment this next line to initialize the port direction for the LED.
*/
/* P1DIR |= 0x1; */
/*
* Print "Hello world" to a log buffer.
*/
Log_info0("Hello world\n");
/*
* Start BIOS.
* Begins task scheduling.
*/
BIOS_start(); /* does not return */
}
/*
* ======== myTickFxn ========
* Timer ISR function that posts a Swi to peform
* the non-realtime service functions.
*/
Void myTickFxn(UArg arg)
{
/*
* Uncomment this next line to toggle the LED state.
*/
/* P1OUT ^= 0x1; */
tickCount += 1; /* increment the counter */
/* every 10 timer interrupts post the semaphore */
if ((tickCount % 10) == 0) {
Semaphore_post(mySem);
}
}
/*
* ======== myTaskFxn ========
* Task function that pends on a semaphore until 10 ticks have
* expired.
*/
Void myTaskFxn(Void)
{
/*
* Do this forever
*/
while (TRUE) {
/*
* Pend on "mySemaphore" until the timer ISR says
* its time to do something.
*/
Semaphore_pend(mySem, BIOS_WAIT_FOREVER);
/*
* Print the current value of tickCount to a log buffer.
*/
Log_info1("10 ticks. Tick Count = %d\n", tickCount);
}
}
Awais,
The test you are running does not output to the CCS console, but the output goes into a Log buffer that can be viewed either with the RTA log viewer, or the RTOS Object Viewer tool. There is a comment in the file indicating how to see the output via the log viewer:
* All output is routed to a log buffer which can be viewed
* using the RTA "Raw Logs" viewer. After loading and running
* the application, launch the Tools->RTA->Raw Logs tool to
* view the logs.
Regarding the linking error when you added calls to System_printf() and System_flush()… I think maybe you didn’t add the include of the System.h file, like this:
#include <xdc/runtime/System.h>
There should have been a couple build warnings too, indicating the functions were being declared implicitly. Was that it?
Thanks,
Scott
Thanks this time I got the result on console window but why I can't get the result when I run simple program without SYS/BIOS. I am sending you the code as given below. I did not get any result on console window for the following simple program.
#include <stdio.h>
/*
* hello.c
*/
void main(void) {
printf("Hello World!\n");
fflush(stdout);
}
Awais,
I don’t have the same board you are using but just tried this on a Chronos watch with the same CC430 device and it worked.
There is a wiki page that discusses CIO on the MSP430 here: http://processors.wiki.ti.com/index.php/Printf_support_for_MSP430_CCSTUDIO_compiler
I used the non-SYS/BIOS project template “Basic Examples -> Hello World”. I had to increase the default heap size in the project properties (as described on the wiki page) otherwise there was no console output.
Also, there is no need to call fflush().
Scott
Hi Scott,
Thanks Scott. I got it when I was running simple hello word example. when I tried to print something on console window using RF example using CC430F6137RF board, I got nothing. Could you tell what is the reason behind it.
Awais
Hi Awais,
I’m not familiar with that board or the RF examples. For those questions I think it would be best to post a new thread the general MSP430 forum: http://e2e.ti.com/support/microcontrollers/msp43016-bit_ultra-low_power_mcus/f/166.aspx
Scott