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.

RTOS/TMDXICE110: Difference between Linaro and TIv18

Part Number: TMDXICE110
Other Parts Discussed in Thread: AMIC110, SYSBIOS

Tool/software: TI-RTOS

Hello.

I have a two question.

First. I was created two projects using New CCS Project. Both project typical, but different compiler.

First Project properties.

Second Project properties.

After, I insert in both project .cfg file next code:

/* ================ Driver configuration ================ */

/* Load the OSAL package */
var osType = "tirtos";
var Osal = xdc.loadPackage('ti.osal');
Osal.Settings.osType = osType;

/*use CSL package*/
var socType = "am335x";
var Csl = xdc.loadPackage('ti.csl');
Csl.Settings.deviceType = socType;

/* Load the uart package */
var Uart = xdc.loadPackage('ti.drv.uart');
Uart.Settings.socType = socType;

/* Load the spi package */
var socType = "am335x";
var I2C = xdc.loadPackage('ti.drv.i2c');
I2C.Settings.socType = socType;

/* Load the board package */
var Board = xdc.loadPackage('ti.board');
Board.Settings.boardName = "iceAMIC110";

I want to configure driver for using UART.

When I compile the second project, where GNU Linaro, the result of compilation is not a problem. And when I compile the first project, where TIv18.1.1.LTS, the result of compilation is error. The error is below.

And log file of error.

**** Build of configuration Debug for project Motion_Controller_Siberia_AMIC110 ****

"C:\\ti\\ccs800\\ccsv8\\utils\\bin\\gmake" -k -j 4 all -O

Building file: "../Motion_Controller_Siberia_AMIC110.cfg"
Invoking: XDCtools
"C:/ti/ccs800/xdctools_3_50_05_12_core/xs" --xdcpath="C:/ti/bios_6_52_00_12/packages;C:/ti/uia_2_20_00_02/packages;C:/ti/pdk_am335x_1_0_9/packages;C:/ti/ndk_2_26_00_08/packages;" xdc.tools.configuro -o configPkg -t ti.targets.arm.elf.A8Fnv -p ti.platforms.evmAM3359 -r release -c "C:/ti/ccs800/ccsv8/tools/compiler/ti-cgt-arm_18.1.1.LTS" --compileOptions "-g --optimize_with_debug" "../Motion_Controller_Siberia_AMIC110.cfg"
making package.mak (because of package.bld) ...
generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ...
configuring Motion_Controller_Siberia_AMIC110.xea8fnv from package/cfg/Motion_Controller_Siberia_AMIC110_pea8fnv.cfg ...
generating custom ti.sysbios library makefile ...
subdir_rules.mk:12: recipe for target 'build-794946225-inproc' failed
js: "C:/ti/pdk_am335x_1_0_9/packages/ti/board/package.xs", line 71: Error: Library not found: C:/ti/pdk_am335x_1_0_9/packages/ti/board/./lib/iceAMIC110/a8/release/ti.board.aea8fnv
gmake.exe: *** [package/cfg/Motion_Controller_Siberia_AMIC110_pea8fnv.xdl] Error 1
gmake.exe: *** Deleting file `package/cfg/Motion_Controller_Siberia_AMIC110_pea8fnv.xdl'
gmake.exe: *** [package/cfg/Motion_Controller_Siberia_AMIC110_pea8fnv.xdl] Deleting file `package/cfg/Motion_Controller_Siberia_AMIC110_pea8fnv.h'
gmake.exe: *** [package/cfg/Motion_Controller_Siberia_AMIC110_pea8fnv.xdl] Deleting file `package/cfg/Motion_Controller_Siberia_AMIC110_pea8fnv.c'
js: "C:/ti/ccs800/xdctools_3_50_05_12_core/packages/xdc/tools/Cmdr.xs", line 52: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted.
gmake[1]: *** [build-794946225-inproc] Error 1
gmake: *** No rule to make target 'build-794946225', needed by 'configPkg/compiler.opt'.
gmake: Target 'all' not remade because of errors.

**** Build Finished ****

Second question.

In project, that have Linaro, I insert next code in main.c file.

/*
* ======== main.c ========
*/

/* XDCtools Header files */
#include <xdc/std.h>
#include <xdc/cfg/global.h>
#include <xdc/runtime/Error.h>
#include <xdc/runtime/System.h>


#include <ti/sysbios/BIOS.h>
#include <ti/sysbios/knl/Task.h>

#include "stdio.h"
#include "stdint.h"
#include "stdlib.h"
#include "string.h"


/* UART Header files */
#include <ti/drv/uart/UART.h>
#include <ti/drv/uart/UART_stdio.h>

#include <ti/drv/uart/test/src/UART_board.h>


#define INPUT_LENGTH (16U)

char echoPrompt[]="\nuart driver and utils example test cases :\nEnter 150 characters or press Esc \n";
char echoPrompt1[]="DATA RECEIVED IS\n ";


/*
* ======== taskFxn ========
*/
Void taskFxn(UArg a0, UArg a1)
{
System_printf("enter taskFxn()\n");

Task_sleep(10);

System_printf("exit taskFxn()\n");

System_flush(); /* force SysMin output to console */
}

void Board_initUART(void)
{
Board_initCfg boardCfg;

boardCfg = BOARD_INIT_PINMUX_CONFIG |
BOARD_INIT_MODULE_CLOCK |
BOARD_INIT_UART_STDIO;

Board_init(boardCfg);
}


Void uart_test(UArg arg0, UArg arg1){

char input = '\n';
char *buffPointer;


buffPointer = (char*)malloc(INPUT_LENGTH);
memset(buffPointer,0,INPUT_LENGTH);

UART_puts("\nuart driver and utils example test cases :\nEnter 16 characters or press Esc \n",sizeof("uart driver and utils example test cases : please enter 16 characters or press Esc or carriage return\n"));

while(1) {
memset(buffPointer,0,INPUT_LENGTH);
UART_gets(buffPointer, INPUT_LENGTH);
UART_puts(&input,1);
UART_printf("Data received is\n");
UART_puts(buffPointer, INPUT_LENGTH);
UART_puts("\nuart driver and utils example test cases :\nEnter 16 characters or press Esc \n",sizeof("uart driver and utils example test cases : please enter 16 characters or press Esc or carriage return\n"));
}
} /* uart_test */

* ======== main ========
*/
Int main()
{
Task_Handle task;
Error_Block eb;

/* Call board init functions */
Board_initUART();

System_printf("enter main()\n");

Error_init(&eb);
task = Task_create(taskFxn, NULL, &eb);
if (task == NULL) {
System_printf("Task_create() failed!\n");
BIOS_exit(0);
}

Error_init(&eb);
task = Task_create(uart_test, NULL, &eb);
if (task == NULL) {
System_printf("Task_create() failed!\n");
BIOS_exit(0);
}


BIOS_start(); /* does not return */
return(0);
}

It's a part of code from UART_BasicExample_iceAMIC110_armExampleProject. This code normally compiling and no have errors.

After I download code through CCS Debug Session and push button Resume (Run) CCS is automatically stopped project, and show next:

What is it. When I run UART_BasicExample_iceAMIC110_armExampleProject, this message does not appear.

And I summarize my post.
First, what is the difference between compilers and how to set up the correct project settings under TIV18.
The second. Why does the program stop?

  • The RTOS team have been notified. They will respond here.
  • TI only supports Linaro GCC compiler for all ARM architectures like Cortex A8, A9 and A15. TI ARM compiler is only used for M3, M4, ARM9, cores in the devices that we offer in the TI Processor family. The use case that you are requesting is not support with Processor SDK RTOS that you are using so I would recommend that you consider migrating to the GCC compiler. We can`t help you with this debug as you are building an application and linking into libraries that have been built using GNU GCC compiler.

    For more technical details on difference between TI compiler vs GNU GCC compiler, you might have better responses from the TI compiler team.

    Regards,
    Rahul