forked from RT-Thread/rt-thread
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
45 changed files
with
13,431 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# for module compiling | ||
import os | ||
Import('RTT_ROOT') | ||
|
||
cwd = str(Dir('#')) | ||
objs = [] | ||
list = os.listdir(cwd) | ||
|
||
for d in list: | ||
path = os.path.join(cwd, d) | ||
if os.path.isfile(os.path.join(path, 'SConscript')): | ||
objs = objs + SConscript(os.path.join(d, 'SConscript')) | ||
|
||
Return('objs') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
import os | ||
import sys | ||
import rtconfig | ||
|
||
if os.getenv('RTT_ROOT'): | ||
RTT_ROOT = os.getenv('RTT_ROOT') | ||
else: | ||
RTT_ROOT = os.path.normpath(os.getcwd() + '/../..') | ||
|
||
sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')] | ||
from building import * | ||
|
||
TARGET = 'rtthread-dm365.' + rtconfig.TARGET_EXT | ||
|
||
env = Environment(tools = ['mingw'], | ||
AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS, | ||
CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS, | ||
AR = rtconfig.AR, ARFLAGS = '-rc', | ||
LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS) | ||
env.PrependENVPath('PATH', rtconfig.EXEC_PATH) | ||
|
||
Export('RTT_ROOT') | ||
Export('rtconfig') | ||
|
||
# prepare building environment | ||
objs = PrepareBuilding(env, RTT_ROOT) | ||
|
||
# libc testsuite | ||
objs = objs + SConscript(RTT_ROOT + '/examples/libc/SConscript', variant_dir='build/examples/libc', duplicate=0) | ||
|
||
# make a building | ||
DoBuilding(TARGET, objs) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
import rtconfig | ||
Import('RTT_ROOT') | ||
from building import * | ||
|
||
cwd = GetCurrentDir() | ||
src = Glob('*.c') | ||
|
||
CPPPATH = [cwd, str(Dir('#'))] | ||
group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH) | ||
|
||
Return('group') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,229 @@ | ||
/* | ||
* File : application.c | ||
* This file is part of RT-Thread RTOS | ||
* COPYRIGHT (C) 2006, RT-Thread Development Team | ||
* | ||
* The license and distribution terms for this file may be | ||
* found in the file LICENSE in this distribution or at | ||
* http://www.rt-thread.org/license/LICENSE | ||
* | ||
* Change Logs: | ||
* Date Author Notes | ||
* 2007-11-20 Yi.Qiu add rtgui application | ||
* 2008-6-28 Bernard no rtgui init | ||
*/ | ||
|
||
/** | ||
* @addtogroup dm365 | ||
*/ | ||
/*@{*/ | ||
|
||
#include <rtthread.h> | ||
//#include <rtdevice.h> | ||
|
||
#ifdef RT_USING_DFS | ||
/* dfs init */ | ||
#include <dfs_init.h> | ||
/* dfs filesystem:ELM FatFs filesystem init */ | ||
#include <dfs_elm.h> | ||
/* dfs Filesystem APIs */ | ||
#include <dfs_fs.h> | ||
#ifdef RT_USING_DFS_UFFS | ||
/* dfs filesystem:UFFS filesystem init */ | ||
#include <dfs_uffs.h> | ||
#endif | ||
#endif | ||
|
||
#if defined(RT_USING_DFS_DEVFS) | ||
#include <devfs.h> | ||
#endif | ||
|
||
#ifdef RT_USING_SDIO | ||
#include <drivers/mmcsd_core.h> | ||
|
||
#endif | ||
|
||
#ifdef RT_USING_LWIP | ||
#include <netif/ethernetif.h> | ||
#endif | ||
|
||
#ifdef RT_USING_SPI | ||
#include <spi-davinci.h> | ||
#endif | ||
|
||
#ifdef RT_USING_LED | ||
#include "led.h" | ||
#endif | ||
|
||
#define RT_INIT_THREAD_STACK_SIZE (2*1024) | ||
|
||
#ifdef RT_USING_DFS_ROMFS | ||
#include <dfs_romfs.h> | ||
#endif | ||
|
||
void rt_init_thread_entry(void* parameter) | ||
{ | ||
platform_init(); | ||
|
||
/* Filesystem Initialization */ | ||
#ifdef RT_USING_DFS | ||
{ | ||
/* init the device filesystem */ | ||
dfs_init(); | ||
|
||
#if defined(RT_USING_DFS_ELMFAT) | ||
/* init the elm chan FatFs filesystam*/ | ||
elm_init(); | ||
#endif | ||
|
||
#if defined(RT_USING_DFS_ROMFS) | ||
dfs_romfs_init(); | ||
if (dfs_mount(RT_NULL, "/rom", "rom", 0, &romfs_root) == 0) | ||
{ | ||
rt_kprintf("ROM File System initialized!\n"); | ||
} | ||
else | ||
rt_kprintf("ROM File System initialzation failed!\n"); | ||
#endif | ||
|
||
#if defined(RT_USING_DFS_DEVFS) | ||
devfs_init(); | ||
if (dfs_mount(RT_NULL, "/dev", "devfs", 0, 0) == 0) | ||
rt_kprintf("Device File System initialized!\n"); | ||
else | ||
rt_kprintf("Device File System initialzation failed!\n"); | ||
|
||
#ifdef RT_USING_NEWLIB | ||
/* init libc */ | ||
libc_system_init(RT_CONSOLE_DEVICE_NAME); | ||
#endif | ||
#endif | ||
|
||
#if defined(RT_USING_DFS_UFFS) | ||
{ | ||
/* init the uffs filesystem */ | ||
dfs_uffs_init(); | ||
|
||
/* mount flash device as flash directory */ | ||
if(dfs_mount("nand0", "/nand0", "uffs", 0, 0) == 0) | ||
rt_kprintf("UFFS File System initialized!\n"); | ||
else | ||
rt_kprintf("UFFS File System initialzation failed!\n"); | ||
} | ||
#endif | ||
|
||
#ifdef RT_USING_I2C | ||
{ | ||
rt_i2c_core_init(); | ||
davinci_i2c_init("I2C1"); | ||
pcf8563_init("I2C1", 0x51); | ||
} | ||
#endif | ||
|
||
#ifdef RT_USING_SPI | ||
{ | ||
rt_hw_spi_init(); | ||
} | ||
#endif | ||
|
||
#ifdef RT_USING_SDIO | ||
rt_mmcsd_core_init(); | ||
rt_mmcsd_blk_init(); | ||
#if 1 | ||
//rt_hw_mmcsd_init(); | ||
spi_sd_init("spi10"); | ||
rt_thread_delay(RT_TICK_PER_SECOND*2); | ||
/* mount sd card fat partition 1 as root directory */ | ||
if (dfs_mount("sd0", "/", "elm", 0, 0) == 0) | ||
{ | ||
rt_kprintf("File System initialized!\n"); | ||
} | ||
else | ||
rt_kprintf("File System initialzation failed!%d\n", rt_get_errno()); | ||
#endif | ||
#endif | ||
} | ||
#endif | ||
|
||
#ifdef RT_USING_LWIP | ||
{ | ||
/* register ethernetif device */ | ||
eth_system_device_init(); | ||
rt_hw_davinci_emac_init(); | ||
/* init lwip system */ | ||
lwip_system_init(); | ||
} | ||
#endif | ||
|
||
} | ||
|
||
|
||
void rt_led_thread_entry(void* parameter) | ||
{ | ||
while(1) | ||
{ | ||
/* light on leds for one second */ | ||
rt_thread_delay(100); | ||
|
||
/* light off leds for one second */ | ||
rt_thread_delay(100); | ||
} | ||
} | ||
|
||
int rt_application_init() | ||
{ | ||
rt_thread_t init_thread; | ||
#ifdef RT_USING_LED | ||
rt_thread_t led_thread; | ||
#endif | ||
|
||
#if (RT_THREAD_PRIORITY_MAX == 32) | ||
init_thread = rt_thread_create("init", | ||
rt_init_thread_entry, RT_NULL, | ||
RT_INIT_THREAD_STACK_SIZE, 8, 20); | ||
#ifdef RT_USING_LED | ||
led_thread = rt_thread_create("led", | ||
rt_led_thread_entry, RT_NULL, | ||
512, 20, 20); | ||
#endif | ||
#else | ||
init_thread = rt_thread_create("init", | ||
rt_init_thread_entry, RT_NULL, | ||
RT_INIT_THREAD_STACK_SIZE, 80, 20); | ||
#ifdef RT_USING_LED | ||
led_thread = rt_thread_create("led", | ||
rt_led_thread_entry, RT_NULL, | ||
512, 200, 20); | ||
#endif | ||
#endif | ||
|
||
if (init_thread != RT_NULL) | ||
rt_thread_startup(init_thread); | ||
#ifdef RT_USING_LED | ||
if(led_thread != RT_NULL) | ||
rt_thread_startup(led_thread); | ||
#endif | ||
|
||
return 0; | ||
} | ||
|
||
/* NFSv3 Initialization */ | ||
#if defined(RT_USING_DFS) && defined(RT_USING_LWIP) && defined(RT_USING_DFS_NFS) | ||
#include <dfs_nfs.h> | ||
void nfs_start(void) | ||
{ | ||
nfs_init(); | ||
|
||
if (dfs_mount(RT_NULL, "/nfs", "nfs", 0, RT_NFS_HOST_EXPORT) == 0) | ||
{ | ||
rt_kprintf("NFSv3 File System initialized!\n"); | ||
} | ||
else | ||
rt_kprintf("NFSv3 File System initialzation failed!\n"); | ||
} | ||
|
||
#include "finsh.h" | ||
FINSH_FUNCTION_EXPORT(nfs_start, start net filesystem); | ||
#endif | ||
|
||
/*@}*/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
/* | ||
* File : board.c | ||
* This file is part of RT-Thread RTOS | ||
* COPYRIGHT (C) 2006 - 2009 RT-Thread Develop Team | ||
* | ||
* The license and distribution terms for this file may be | ||
* found in the file LICENSE in this distribution or at | ||
* http://www.rt-thread.org/license/LICENSE | ||
* | ||
* Change Logs: | ||
* Date Author Notes | ||
* 2010-11-13 weety first version | ||
*/ | ||
|
||
#include <rtthread.h> | ||
#include <rthw.h> | ||
#include <mmu.h> | ||
#include "board.h" | ||
|
||
/** | ||
* @addtogroup dm365 | ||
*/ | ||
/*@{*/ | ||
|
||
extern void rt_hw_clock_init(void); | ||
extern void rt_hw_uart_init(void); | ||
|
||
static struct mem_desc dm365_mem_desc[] = { | ||
{ 0x80000000, 0x88000000-1, 0x80000000, SECT_RW_CB, 0, SECT_MAPPED }, /* 128M cached SDRAM memory */ | ||
{ 0xA0000000, 0xA8000000-1, 0x80000000, SECT_RW_NCNB, 0, SECT_MAPPED }, /* 128M No cached SDRAM memory */ | ||
{ 0xFFFF0000, 0xFFFF1000-1, 0x80000000, SECT_TO_PAGE, PAGE_RO_CB, PAGE_MAPPED }, /* isr vector table */ | ||
{ 0x01C00000, 0x02000000-1, 0x01C00000, SECT_RW_NCNB, 0, SECT_MAPPED }, /* CFG BUS peripherals */ | ||
{ 0x02000000, 0x0A000000-1, 0x02000000, SECT_RW_NCNB, 0, SECT_MAPPED }, /* AEMIF */ | ||
}; | ||
|
||
|
||
/** | ||
* This function will handle rtos timer | ||
*/ | ||
void rt_timer_handler(int vector, void *param) | ||
{ | ||
rt_tick_increase(); | ||
} | ||
|
||
/** | ||
* This function will init timer0 for system ticks | ||
*/ | ||
void rt_hw_timer_init() | ||
{ | ||
/* timer0, input clocks 24MHz */ | ||
volatile timer_regs_t *regs = | ||
(volatile timer_regs_t*)DAVINCI_TIMER1_BASE;//DAVINCI_TIMER0_BASE; | ||
|
||
/*disable timer*/ | ||
regs->tcr &= ~(0x3UL << 6); | ||
|
||
//TIMMODE 32BIT UNCHAINED MODE | ||
regs->tgcr |=(0x1UL << 2); | ||
|
||
/*not in reset timer */ | ||
regs->tgcr |= (0x1UL << 0); | ||
|
||
//regs->tgcr &= ~(0x1UL << 1); | ||
|
||
/* set Period Registers */ | ||
regs->prd12 = 24000000/RT_TICK_PER_SECOND; | ||
regs->tim12 = 0; | ||
|
||
/* Set enable mode */ | ||
regs->tcr |= (0x2UL << 6); //period mode | ||
|
||
|
||
/* install interrupt handler */ | ||
rt_hw_interrupt_install(IRQ_DM365_TINT2, rt_timer_handler, | ||
RT_NULL, "timer1_12");//IRQ_DM365_TINT0_TINT12 | ||
rt_hw_interrupt_umask(IRQ_DM365_TINT2);//IRQ_DM365_TINT2 | ||
|
||
} | ||
|
||
/** | ||
* This function will init dm365 board | ||
*/ | ||
void rt_hw_board_init() | ||
{ | ||
psc_change_state(DAVINCI_DM365_LPSC_TIMER0, 3); | ||
psc_change_state(DAVINCI_DM365_LPSC_TIMER1, 3); | ||
/* initialize the system clock */ | ||
//rt_hw_clock_init(); | ||
davinci_clk_init(); | ||
|
||
/* initialize uart */ | ||
rt_hw_uart_init(); | ||
#ifdef RT_USING_CONSOLE | ||
rt_console_set_device(RT_CONSOLE_DEVICE_NAME); | ||
#endif | ||
|
||
/* initialize mmu */ | ||
rt_hw_mmu_init(dm365_mem_desc, sizeof(dm365_mem_desc)/sizeof(dm365_mem_desc[0])); | ||
|
||
/* initialize timer0 */ | ||
rt_hw_timer_init(); | ||
|
||
} | ||
|
||
/*@}*/ |
Oops, something went wrong.