According to the documentation 'Vybrid DS-5 Getting Started Guide', I tried to set up a debug connection to the vybrid tower board. In the first example there, a single debug connection to the A5 core is established. When the Debugging is started, the M4 is also started (using a 'start_m4()' function). This works fine. In a next example, a dual debug connection should be set up, which does not work.
The debug configuration dialog in DS-5, version 5.18, has changed compared to the documentation, and I can not make the demanded adaptions like 'Enable Cortex-M4 clock', nor find any other working configuration.
has anybody set up sucessfully this example, using the vybrid tower (TWR-VF65GS10) and DS-5 v. 5.18 ?
Solved! Go to Solution.
yes it is slightly different, but main parts are same.
You need two debug configurations: one for CA5 and one for CM4:
Click at button DTSL and check Start secondary core .....
Then you should connect to both cores separately.
Is it also incorrect to specify "Connect only" for the M4 when you've just reconnected the A5 (as stated in the getting started doc) ?
Without the "start_m4" call the M4 just sits in a loop waiting for an interrupt that never comes - I guess it needs a valid start address ?
"Debug from entry point" works better
Please enlighten me if I've got the wrong end of the stick - I'm new to this !
All option you need clock for secondary core. In default configuration where Cortex-A5 is primary core the clock for Cortex-M4 is not enabled after reset. So you can :
you can see a video for it https://www.youtube.com/watch?feature=player_embedded&v=djExDHsBa5w (in newest DS-5 the connection configuration is little bit different)
Have tried to comment out the start_m4 function and start first a A5 debug session, and after that start the M4 debug session?
The debug session can be left as default.
Please let me know how it goes.
Finally I could make it work, but only after commenting out the printf() calls in the funtions main() and hello_M4() in M4 project. (see code snippet at bottom)
Otherwise the while(1) statement is never reached.
I have no idea what could be the reason for this behaviour.
Unfortunately I can even not check the terminal output of printf(). I tried to use the terminal of DS-5 with following settings, but get no output, neither from M4 nor A5
(even though changing the UART_PORT to UART2 according to Rev G Tower Board Changes)
/* Enable IO for LED operation */
// printf("Hello World from M4 Core!\n"); // NEEDS TO BE COMMENTED OUT
/* Blink Tower LEDs */
/* Say Hello */
/* Lock gate to write UART, then unlock */
SEMA4->GATE = CORE1_LOCK;
if(SEMA4->GATE == CORE1_LOCK)
/* Output message from M4 */
// printf("Hello M4!\n"); // NEEDS TO BE COMMENTED OUT
/* Unlock Semaphore */
SEMA4->GATE = UNLOCK;
please check which serial channel is available on your machine i device manager:
then use puTTy, TerraTerm, Hercules or any other application and set communication parameters to 115200 b/s, no parity, 1 stop bit and no flow control.
Not sure what happens in your code, but maybe you can start new DS5 worspace and import project from Vybrid sample code (from Vybrid web pages) and then you can go back to your code.