Hi TI:
I am still trying to get up to speed on SYS/BIOS and StellarisWare.
I am running into "simple"; but, perplexing issues. (2 Issues, 1 Question)
I tried to boil the program down to bare essentials. Any help would be greatly appreciated.
SYS/BIOS - 6.34.2.18 / CodeComposer: 5.3.0.00090
The Issues and Question are at the bottom.
The program... (10 lines!)
#include <ti/sysbios/BIOS.h>
#include "inc/lm3s6965.h" // I2C0SCL_PORT, I2C0SDA_PORT
#include "inc/hw_ints.h" // INT_I2C0
#include "inc/hw_types.h" // false & tBoolean
#include "driverlib/interrupt.h" // IntEnable
Void main()
{
IntEnable(INT_I2C0);
BIOS_start(); /* enable interrupts and start SYS/BIOS */
}
The project files… As you can see, I have interrupt.c, cpu.c and lm3s6965.h are imported via link. The files are all untouched.
Contents of the lm3s6965.cmd file…. *some comments were removed.
/* Default Linker Command file for the Texas Instruments LM3S6965
* This is part of revision 9385 of the Stellaris Peripheral Driver Library. */
--retain=g_pfnVectors
MEMORY
{
FLASH (RX) : origin = 0x00000000, length = 0x00040000
SRAM (RWX) : origin = 0x20000000, length = 0x00010000
}
/* --heap_size=0 */
/* --stack_size=256 */
/* --library=rtsv7M3_T_le_eabi.lib */
SECTIONS
{
.intvecs: > 0x00000000
.text : > FLASH
.const : > FLASH
.cinit : > FLASH
.pinit : > FLASH
.vtable : > 0x20000000
.data : > SRAM
.bss : > SRAM
.sysmem : > SRAM
.stack : > SRAM
}
__STACK_TOP = __stack + 256;
**** Build of configuration Debug for project Test8 ****
"C:\\ti\\ccsv5\\utils\\bin\\gmake" -k all
making ../src/sysbios.aem3 ...
gmake[1]: Nothing to be done for `all'.
'Building file: ../main.c'
'Invoking: ARM Compiler'
"C:/ti/ccsv5/tools/compiler/arm_5.0.4/bin/armcl" -mv7M3 --code_state=16 --abi=eabi -me -g --include_path="C:/ti/ccsv5/tools/compiler/arm_5.0.4/include" --include_path="C:/StellarisWare/" --gcc --diag_warning=225 --display_error_number --diag_wrap=off --preproc_with_compile --preproc_dependency="main.pp" --cmd_file="./configPkg/compiler.opt" "../main.c"
'Finished building: ../main.c'
' '
'Building target: Test8.out'
'Invoking: ARM Linker'
"C:/ti/ccsv5/tools/compiler/arm_5.0.4/bin/armcl" -mv7M3 --code_state=16 --abi=eabi -me -g --gcc --diag_warning=225 --display_error_number --diag_wrap=off -z --stack_size=256 -m"Test8.map" --heap_size=0 -i"C:/ti/ccsv5/tools/compiler/arm_5.0.4/lib" -i"C:/ti/ccsv5/tools/compiler/arm_5.0.4/include" --reread_libs --warn_sections --display_error_number --diag_wrap=off --rom_model -o "Test8.out"
-l"./configPkg/linker.cmd" "./main.obj" "./interrupt.obj" "./cpu.obj" -l"libc.a" "../lm3s6965.cmd"
<Linking>
Issue #1
warning #10247-D: creating output section "vtable" without a SECTIONS specification
Issue #2
undefined first referenced
symbol in file
--------- ----------------
CPUbasepriGet ./interrupt.obj
CPUbasepriSet ./interrupt.obj
CPUcpsid ./interrupt.obj
CPUcpsie ./interrupt.obj
error #10234-D: unresolved symbols remain
error #10010: errors encountered during linking; "Test8.out" not built
Issue #1… Very perplexing since I see this in the lm3s6965.cmd file.
Issue #2…. I think I’m seeing all of the object files being created; but, I can’t understand why the linker is complaining about this.
I’ve tried to go through the forums and add what I can see to add; but, this is not adding up for me. Any help would be greatly appreciated.
Question…. The contents of the program bother me. These are examples that I picked off from the forum.
IntEnable(INT_I2C0); // I am enabling an interrupt due to all of the samples that I see.
BIOS_start(); // enable interrupts and start SYS/BIOS
So… I’m struggling with this…. Do I need to use IntEnable or does SYS/BIOS do this for me?
Yes or No will not be helpful… A little background or a good link would be most appreciated.
Thank you for your consideration.
Rick