Wim Huiskamp
/
mbed_nucleo_swo
Test for SWO viewer library.
See here for more information.
main.cpp
- Committer:
- wim
- Date:
- 2016-04-03
- Revision:
- 2:9c50385f83c5
- Parent:
- 1:3308ab077592
- Child:
- 3:3d2422feccb5
File content as of revision 2:9c50385f83c5:
/* mbed Test program for debug and monitoring of ST nucleo boards with SWO. * Copyright (c) 2015, v01: WH, Initial version * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ #include "mbed.h" #include "SWO.h" //Single Wire Output(SWO) Test //Hook up to Host PC software ST-LINK Utility or Segger J-Link SWO viewer // #define D_SWO 1 //Enable SWO output #define D_STREAM 1 //Select Stream or Classic implementation #if(D_STREAM == 1) //Stream implementation DigitalOut myled(LED1); Serial pc(SERIAL_TX, SERIAL_RX); SWO_Channel SWO; int main() { #if defined(TARGET_NUCLEO_F103RB) pc.printf("Hello World from ST32F103RB\n\r"); #endif #if defined(TARGET_NUCLEO_F446RE) pc.printf("Hello World from ST32F446RE\n\r"); #endif // pc.printf("\r\nMy Program - build " MBED_BUILD_TIMESTAMP "\r\n"); pc.printf("\r\nMy Program - (partial) build " __DATE__ " " __TIME__ "\r\n"); pc.printf("CPU SystemCoreClock is %d Hz\r\n", SystemCoreClock); #if (D_SWO == 1) //Stream SWO.printf("\r\nHello World from SWO\r\n"); SWO.printf("CPU SystemCoreClock is %d Hz\r\n", SystemCoreClock); #endif while(1) { myled = 1; // LED is ON wait(0.2); // 200 ms myled = 0; // LED is OFF wait(1.0); // 1 sec pc.putc('*'); #if (D_SWO == 1) //Stream SWO.putc('#'); #endif } } #else //Classic implementation DigitalOut myled(LED1); Serial pc(SERIAL_TX, SERIAL_RX); SWO_Channel SWO; int main() { pc.printf("Hello World\n\r"); // pc.printf("\r\nMy Program - build " MBED_BUILD_TIMESTAMP "\r\n"); pc.printf("\r\nMy Program - (partial) build " __DATE__ " " __TIME__ "\r\n"); pc.printf("CPU SystemCoreClock is %d Hz\r\n", SystemCoreClock); #if (D_SWO == 1) //Classic SWO_PrintString("\r\nHello World from SWO\r\n"); char message[64]; sprintf(message, "CPU SystemCoreClock is %d Hz\r\n", SystemCoreClock); SWO_PrintString(message); #endif while(1) { myled = 1; // LED is ON wait(0.2); // 200 ms myled = 0; // LED is OFF wait(1.0); // 1 sec #if (D_SWO == 1) //Classic // SWO_PrintString("#"); SWO_PrintChar('+'); #endif } } #endif