Hi there, I am trying to implement a realtime codec on a C6711. I use HWI_INT9 for an ISR function (driven by MCSP_0_Transmit) to read in and write out samples simultaneously. I am using a NON-ISR function to process data already read in. Now, if I add one more line (that actually does something and is not 'optimized out' by the compiler) to that NON-ISR function, then the compiled and uploaded program goes to an undefined state and 'does nothing'. Since that function is not part of the ISR, it cannot be a 'not enough time for processing' problem. I guess I've run out of memory. I don't really understand yet how memory is organized and divided into parts for use. I am simply using the default Memory Map settings (generated by GEL->Memory Map->SetMemoryMap). Any idea how to solve that problem? Thanks in advance, Tam |
|
C6711 Problem (Wrong memory settings?)
Started by ●October 16, 2003
Reply by ●October 18, 20032003-10-18
Hello Tamas,
A couple of things that might help. When you talk about "memory" in
TI DSPland there can be some confusing nomenclature. Before I cover memory
stuff, make sure that you set your compiler settings to generate a
'.map' file, it will tell you the memory addresses that the compiler
is trying to use. Now for some 'memory terms' [this information
is buried in variuos places in TI docs]:
CCS memory map - this is normally created by a GEL file or by using the CCS
menu Opion->Memory_Map. This memory map only tell CCS where the memory
is, what type it is, what types of accesses CCS will make to it. It does
not affect program execution, but it does affect what CCS does and shows
[breakpoints, display, etc]
Linker Command File [*.cmd] - This file is part of your project and tells
the linker where you want it to 'put stuff in memory'. This
should reflect your hardware configuration [or at least the hardware that you
want the compiler to know about]. This can be very simple, defining only a
range of memory that you want the linker to 'use as it sees
fit'. Or it can be extremely fine grained [like one generated by
DSP/BIOS] telling the linker where to put every function and buffer.
Physical memory [hardware] - this is the memory that is actually available
to you. Some of it is fixed in size [like SDRAM] while some of it may vary
in size [like 6711 internal memory] depending on how it is configured [cache
size vs. internal RAM size]. You should always understand the answer to
this question before you begin programming.
I realize that this may be more than you wanted to know, but similar
questions come up regularly [and i was on a roll...
mikedunn
tamas_harczos <n...@freemail.hu> wrote: Hi there, |