diff options
| author | 陈豪 <[email protected]> | 2014-08-12 18:39:53 +0800 |
|---|---|---|
| committer | 陈豪 <[email protected]> | 2014-08-12 18:39:53 +0800 |
| commit | 4cf77e255fc12d5ddda5f049f674c34ad9a18249 (patch) | |
| tree | 171b628ae7af43a925633b7ddc3cb940fa3b7c4c | |
| parent | ae8e46de1ff7386c5add04e8ee3830fc71042306 (diff) | |
[bsp]add gdb support for BBB
| -rw-r--r-- | bsp/beaglebone/applications/application.c | 8 | ||||
| -rw-r--r-- | bsp/beaglebone/drivers/serial.c | 11 | ||||
| -rw-r--r-- | bsp/beaglebone/rtconfig.h | 6 | ||||
| -rw-r--r-- | bsp/beaglebone/rtconfig.py | 2 |
4 files changed, 23 insertions, 4 deletions
diff --git a/bsp/beaglebone/applications/application.c b/bsp/beaglebone/applications/application.c index 99c2991df7..f34821e748 100644 --- a/bsp/beaglebone/applications/application.c +++ b/bsp/beaglebone/applications/application.c @@ -16,6 +16,10 @@ #include <rtthread.h> #include <components.h> +#ifdef RT_USING_GDB +#include <gdb_stub.h> +#endif + int rt_application_init() { /* do component initialization */ @@ -23,6 +27,10 @@ int rt_application_init() #ifdef RT_USING_NEWLIB libc_system_init(RT_CONSOLE_DEVICE_NAME); #endif +#ifdef RT_USING_GDB + gdb_set_device("uart4"); + gdb_start(); +#endif return 0; } diff --git a/bsp/beaglebone/drivers/serial.c b/bsp/beaglebone/drivers/serial.c index 8dcd389123..ee657a0d8f 100644 --- a/bsp/beaglebone/drivers/serial.c +++ b/bsp/beaglebone/drivers/serial.c @@ -80,6 +80,11 @@ static rt_err_t am33xx_configure(struct rt_serial_device *serial, struct serial_ UART_DLL_REG(base) = 26; UART_DLH_REG(base) = 0; } + else if (cfg->baud_rate == BAUD_RATE_9600) + { + UART_DLL_REG(base) = 0x38; + UART_DLH_REG(base) = 1; + } else { NOT_IMPLEMENTED(); @@ -439,7 +444,7 @@ int rt_hw_serial_init(void) #endif #ifdef RT_USING_UART4 - config.baud_rate = BAUD_RATE_115200; + config.baud_rate = BAUD_RATE_9600; config.bit_order = BIT_ORDER_LSB; config.data_bits = DATA_BITS_8; config.parity = PARITY_NONE; @@ -450,14 +455,14 @@ int rt_hw_serial_init(void) serial4.ops = &am33xx_uart_ops; serial4.config = config; /* enable RX interrupt */ - UART_IER_REG(uart4.base) = 0x01; + UART_IER_REG(uart4.base) = 0x00; /* install ISR */ rt_hw_interrupt_install(uart4.irq, am33xx_uart_isr, &serial4, "uart4"); rt_hw_interrupt_control(uart4.irq, 0, 0); rt_hw_interrupt_mask(uart4.irq); /* register UART4 device */ rt_hw_serial_register(&serial4, "uart4", - RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX, + RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_STREAM, &uart4); #endif diff --git a/bsp/beaglebone/rtconfig.h b/bsp/beaglebone/rtconfig.h index 15326d74cf..018b2862f1 100644 --- a/bsp/beaglebone/rtconfig.h +++ b/bsp/beaglebone/rtconfig.h @@ -2,6 +2,12 @@ #ifndef __RTTHREAD_CFG_H__ #define __RTTHREAD_CFG_H__ +// <section name="RT_USING_GDB" description="Gdb Stub for rtt" default="true" > +//#define RT_USING_GDB +//#define RT_GDB_DEBUG +#define RT_GDB_ICACHE +// </section> + // <RDTConfigurator URL="http://www.rt-thread.com/eclipse"> // <integer name="RT_NAME_MAX" description="Maximal size of kernel object name length" default="6" /> diff --git a/bsp/beaglebone/rtconfig.py b/bsp/beaglebone/rtconfig.py index 3c7f228d86..a5561f54d3 100644 --- a/bsp/beaglebone/rtconfig.py +++ b/bsp/beaglebone/rtconfig.py @@ -23,7 +23,7 @@ elif CROSS_TOOL == 'iar': if os.getenv('RTT_EXEC_PATH'): EXEC_PATH = os.getenv('RTT_EXEC_PATH') -BUILD = 'release' +BUILD = 'debug' if PLATFORM == 'gcc': # toolchains |
