summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author陈豪 <[email protected]>2014-08-12 18:39:53 +0800
committer陈豪 <[email protected]>2014-08-12 18:39:53 +0800
commit4cf77e255fc12d5ddda5f049f674c34ad9a18249 (patch)
tree171b628ae7af43a925633b7ddc3cb940fa3b7c4c
parentae8e46de1ff7386c5add04e8ee3830fc71042306 (diff)
[bsp]add gdb support for BBB
-rw-r--r--bsp/beaglebone/applications/application.c8
-rw-r--r--bsp/beaglebone/drivers/serial.c11
-rw-r--r--bsp/beaglebone/rtconfig.h6
-rw-r--r--bsp/beaglebone/rtconfig.py2
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