logs archiveBotHelp.net / Freenode / #43oh / 2015 / September / 22 / 2
DeDetuga
the talk about mamory transfer and GPIO hande with dma but on ccs
Spirilis
ok yeah
just gotta adapt it for GCC
not quite sure what needs to be done for that though
TI always releases their examples/etc written for their proprietary compiler, naturally, they control it so they want you to use it .... but Energia doesn't use it since it's not an open source compiler.
(and most of us shun the proprietary TI compiler just because gcc is better known among the computing world)
looks like you specify in gcc using __attribute__((aligned(1024)))
e.g.
__attribute__((aligned(1024))) uint8_t pui8ControlTable[1024];
DeDetuga
Spirilis the #include "inc/tm4c1294ncpdt.h" seems to work
Spirilis
ok that's good
DeDetuga
no more erros on pragma and IntEnable
Spirilis
the pragma won't work in gcc & Energia so use the attribute keyword I posted above
DeDetuga
Replace #pragma DATA_ALIGN(pui8ControlTable, 1024) uint8_t pui8ControlTable[1024];
for __attribute__((aligned(1024))) uint8_t pui8ControlTable[1024];
thats right?
Spirilis
yep
DeDetuga
ok ;)
now the code only run one time include the loop
Spirilis are you there?
Spirilis
yeah
I don't have any of the hardware in front of me so I'm not really going to test your code :)
DeDetuga
ok
i can run the code on ccs to use the debug system then i post on forum? do you agree?
Spirilis
should be fine. make the project use the "GCC ARM compiler" not "TI ARM compiler" so it's compatible with energia's gcc.
install GCC ARM compiler in CCS if it's not available as an option.
DeDetuga
im back
membiblio there is a print https://www.filepicker.io/api/file/Xei51CavQ4GTWir7Is9I
membiblio can this error related with the IntEnable function?
in https://github.com/energia/Energia/blob/master/hardware/lm4f/cores/lm4f/driverlib/udma.c
on line 1228 talk about this function but is a energia library
"The \e ui32IntChannel parameter should be one of
/! \b UDMA_INT_SW or \b UDMA_INT_ERR as documented for the function
/! uDMAIntRegister().
"
but i dont truly know what this mean
replace the IntEnable(INT_UDMAERR); for IntEnable(UDMA_INT_ERR); ????????????????????
Spirilis
no
that's TivaWare btw, it ships with energia but that's also in CCS
read the comment carefully
"for the function uDMAIntRegister()"
that's obviously not the same as "IntEnable()" ;)
otoh, that does mean that running "IntEnable()" isn't the only thing you do to "enable" an interrupt
it's just 1 of a couple steps
(I've never used the uDMA peripheral so I'm not familiar with what else is necessary, but inspect the uDMA chapter in the TM4C1294NCPDT chip's datasheet carefully to see how it works)
DeDetuga
hmmmm ok
Spirilis
usually the way it works is IntEnable() enables the capability of the interrupt in the NVIC (chip's main interrupt router), and the peripheral has its own separate functions to activate the specific interrupts it cares about...
so any functions starting with uDMAInt* should be on your radar here
membiblio
DeDetuga - do you still need assist with the screen shot you posted?
Spirilis
(welcome to big 32-bit microcontrollers, btw. They're not simple beasts.)
Rickta59
is the dma on all the tiva's the same?
there was a guy who did a ws2812 project that used dma for the gpio
DeDetuga
i need help with dma :P I understand the concept but i dont understand the usage
Spirilis
I think it is, cause it's the ARM primecell microDMA
Rickta59
google tiva ws2812
Spirilis
i.e. it's a common ARM peripheral that comes with the Cortex-M just like SysTick
Rickta59
ah .. nm .. even more confusion he did it with IAR
DeDetuga
yah Spirilis not a good area to start with out weapons
Spirilis
haha
Rickta59
he is using driverlib to do ping pong dma though
membiblio
DeDetuga - on the screen shot you posted - what is your question - what do you not understand about the screen shot you posted?
DeDetuga
Rickta59 and Spirilis there is the complete issue http://forum.43oh.com/topic/8925-tiva-c-series-udma-memory-transfer-on-energia-help/
Rickta59
yeah i read it ..
i just don't have time to figure out your issues
membiblio
DeDetuga - let's be honest here - people want to help /you/ not actually write your code for you. And I know you understand this - just re-iterating. So - where are you at - and what do you need help with right now?
Rickta59
did you get past the compile errors DeDetuga ?
DeDetuga
sincerely membiblio almost nothing i have the var declared and the debug say "identifier not found" and i press the run button, if i press wait a wile and pause it say the same
Rickta59
that is just the debugger telling you that it can't find those
DeDetuga
Rickta59 i dont understand what you say
Rickta59
are you talking about g_ui32MemXferCount ..
DeDetuga
ok
Rickta59
and the red text next to it?
* i'm looking at the CCS screen capture you posted
DeDetuga
that print is before some membiblio compatibility changes, now i got something maybe more symple
Rickta59
so you have something that compiles now? and you are running it in debug?
membiblio
DeDetuga - in the screen shot you posted - it is talking about DEBUG declarations - not CODING declarations.
DeDetuga - Do you see the TAB marked Debug?
DeDetuga - waiting on you man :)
DeDetuga
this is the print debuged now (I dont press the Resume button yet) https://www.filepicker.io/api/file/lvGxWoK4S617m4dupI7w
membiblio
DeDetuga - ok so now you press the Green > Go button to run - you know this right?
DeDetuga
the vars on the up right corner must be all = 0
membiblio
DeDetuga - Us understanding what you are doing is just as important as you understanding what you are doing. We make it look easy - but we can not see your screen from here :)
DeDetuga
and i cant find the vars g_ui32SrcBuf and g_ui32DstBuf on memory browser to check if realy transfer the data
Rickta59
are you in the same stop as that picture?
membiblio
DeDetuga - did you add them?
DeDetuga
membiblio yeah i know the go button, but just to say the vars maybe must be = 0 at the begining time
yes im Rickta59
Rickta59
where are those variable declared? which file?
membiblio
DeDetuga - so the code has /yet/ to be run. I can't see the whole code - so are those vars initialized somewhere in the code? Until they are - you have to consider them garbage. You understand this - correct?
Rickta59
if they are actually global variables ..
they should have been initialized by the startup.c by this point
initialized to zero
are you using the TI compiler or the GCC one?
DeDetuga
Rickta59 on the beginning of Energia (.ino) file
membiblio
DeDetuga - can you do screen sharing with me? I use linux so it has to be compatible with linux. But if you can - I can walk you through the process and explain what is happening and why.
Rickta59
there ya go
membiblio
DeDetuga - it would be nice if I could control your screen and type along with you. Have you ever done anything like that?
DeDetuga - where are you in the world anyway?
DeDetuga
membiblio i post the complete code on http://forum.43oh.com/topic/8925-tiva-c-series-udma-memory-transfer-on-energia-help/ last post i just do copy paste
the vars are declared next of includes
« prev 1 2 3 4 next »