Hi ,
I used the RT-Druid V3 on the AWR1642 and see the below error when I execute the binary.
[Cortex_R4_0]
ASSERT ERROR: file platform/soc_xwr16xx_mss.c[line:967]
It looks to me like some issue in the build of the code wrt to the memory bank usage.
Can someone help?
-TronManI
TI AWR1642 build with RT-Druid : Assert on AWR1642
Moderator: paolo.gai
Re: TI AWR1642 build with RT-Druid : Assert on AWR1642
Hi,
first a couple of questions just to be sure that we are on the same page.
Are you using the specific version of mmWave-SDK stated in the support wiki page?
http://www.erika-enterprise.com/wiki/in ... TI_AWR16XX
Actually only the version MMWAVE-SDK 02_01_00_04 is supporrted (the latest LTS version).
http://software-dl.ti.com/ra-processors ... x_FDS.html
Said that, have you started from the tutorial?
http://www.erika-enterprise.com/wiki/in ... h_RT-Druid
If not your main function looks like this
first a couple of questions just to be sure that we are on the same page.
Are you using the specific version of mmWave-SDK stated in the support wiki page?
http://www.erika-enterprise.com/wiki/in ... TI_AWR16XX
Actually only the version MMWAVE-SDK 02_01_00_04 is supporrted (the latest LTS version).
http://software-dl.ti.com/ra-processors ... x_FDS.html
Said that, have you started from the tutorial?
http://www.erika-enterprise.com/wiki/in ... h_RT-Druid
If not your main function looks like this
Code: Select all
int main(void) {
int errMain;
int32_t errCode;
SOC_Cfg socCfg;
/* Initialize the SOC configuration: */
memset ((void *)&socCfg, 0, sizeof(SOC_Cfg));
printf("\n"); /* The first printf is used as lazy initialization of stdout */
esmHandle = ESM_init(1); /* Clear the Errors */
/* In this example ESM handler is not used but in general must be kept. */
(void)esmHandle;
/* Populate the SOC configuration: */
socCfg.clockCfg = SOC_SysClock_INIT;
/* Initialize the SOC Module */
socHandle = SOC_init(&socCfg, &errCode);
if (socHandle == NULL)
{
printf ("Error: SOC Module Initialization failed [Error code %d]\n", errCode);
errMain = -1;
} else {
printf("!!!Hello World!!!\n");
errMain = 0;
}
if (errMain == 0) {
StartOS(OSDEFAULTAPPMODE);
}
return errMain;
}
Re: TI AWR1642 build with RT-Druid : Assert on AWR1642
Hi,
I have used the SDK 2.1.0.4 from the link provided.
I followed the steps to setup and build as mentioned in your tutorial.
After loading the code to the target program is stopped at main() and then when I execute it, I get the assert.
I am pretty sure it is to do with the build as some of the build options mentioned int he mmWaveSDK and the "ee_arch_compiler_ti_cgt_arm.mk" do not match up.
The error is in the "SOC_getL3RAMNumBanks()" of "mmwave_sdk_02_01_00_04\packages\ti\drivers\soc\platform\soc_xwr16xx_mss.c" .
I have used the SDK 2.1.0.4 from the link provided.
I followed the steps to setup and build as mentioned in your tutorial.
After loading the code to the target program is stopped at main() and then when I execute it, I get the assert.
I am pretty sure it is to do with the build as some of the build options mentioned int he mmWaveSDK and the "ee_arch_compiler_ti_cgt_arm.mk" do not match up.
The error is in the "SOC_getL3RAMNumBanks()" of "mmwave_sdk_02_01_00_04\packages\ti\drivers\soc\platform\soc_xwr16xx_mss.c" .
Re: TI AWR1642 build with RT-Druid : Assert on AWR1642
But,
are you sure that you are working with a awr 16xx and not a 14xx (these configuration are pretty standard AFAIK), or is a custom 16xx?
In any case try this:
Enable compiler minimal opt:
and provide the configuration through CFLAGS
are you sure that you are working with a awr 16xx and not a 14xx (these configuration are pretty standard AFAIK), or is a custom 16xx?
In any case try this:
Enable compiler minimal opt:
Code: Select all
CPU_DATA = CORTEX_R {
COMPILER = TI_CGT_ARM{
MINIMAL_OPTS = TRUE;
};
...
};
and provide the configuration through CFLAGS
Code: Select all
CFLAGS="--define=SOC_XWR16XX"; /* is it right? */
CFLAGS="--define=SUBSYS_MSS"; /* This is a must */
CFLAGS="--define=DOWNLOAD_FROM_CCS2"; /* is this a must? */
CFLAGS="--define=MMWAVE_L3RAM_SIZE=0xC0000"; /* Change this with the right value, this is the macro that configure the check that fail */
CFLAGS="--define=DebugP_ASSERT_ENABLED"; /* keep this one */
CFLAGS="--diag_warning=225"; /* No idea, what this does */