Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
dgr6878
rt-thread
提交
252432ba
R
rt-thread
项目概览
dgr6878
/
rt-thread
与 Fork 源项目一致
Fork自
RT-Thread / rt-thread
通知
5
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rt-thread
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
252432ba
编写于
10月 21, 2017
作者:
B
bernard
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[BSP] Update QEMU VExpress A9 BSP.
上级
7b2decbb
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
272 addition
and
25 deletion
+272
-25
bsp/qemu-vexpress-a9/.config
bsp/qemu-vexpress-a9/.config
+57
-13
bsp/qemu-vexpress-a9/applications/lcd_init.c
bsp/qemu-vexpress-a9/applications/lcd_init.c
+19
-0
bsp/qemu-vexpress-a9/drivers/Kconfig
bsp/qemu-vexpress-a9/drivers/Kconfig
+11
-1
bsp/qemu-vexpress-a9/drivers/SConscript
bsp/qemu-vexpress-a9/drivers/SConscript
+6
-0
bsp/qemu-vexpress-a9/drivers/drv_clcd.c
bsp/qemu-vexpress-a9/drivers/drv_clcd.c
+116
-0
bsp/qemu-vexpress-a9/drivers/drv_clcd.h
bsp/qemu-vexpress-a9/drivers/drv_clcd.h
+6
-0
bsp/qemu-vexpress-a9/qemu-dbg.bat
bsp/qemu-vexpress-a9/qemu-dbg.bat
+1
-0
bsp/qemu-vexpress-a9/rtconfig.h
bsp/qemu-vexpress-a9/rtconfig.h
+56
-11
未找到文件。
bsp/qemu-vexpress-a9/.config
浏览文件 @
252432ba
...
...
@@ -12,9 +12,10 @@ CONFIG_RT_THREAD_PRIORITY_MAX=32
CONFIG_RT_TICK_PER_SECOND
=
100
CONFIG_RT_DEBUG
=
y
CONFIG_RT_USING_OVERFLOW_CHECK
=
y
# CONFIG_RT_DEBUG_INIT is not set
CONFIG_RT_DEBUG_INIT
=
1
# CONFIG_RT_DEBUG_THREAD is not set
CONFIG_RT_USING_HOOK
=
y
CONFIG_IDLE_THREAD_STACK_SIZE
=
256
# CONFIG_RT_USING_TIMER_SOFT is not set
#
...
...
@@ -25,6 +26,7 @@ CONFIG_RT_USING_MUTEX=y
CONFIG_RT_USING_EVENT
=
y
CONFIG_RT_USING_MAILBOX
=
y
CONFIG_RT_USING_MESSAGEQUEUE
=
y
# CONFIG_RT_USING_SIGNALS is not set
#
# Memory Management
...
...
@@ -59,11 +61,13 @@ CONFIG_RT_USING_USER_MAIN=y
# Command shell
#
CONFIG_RT_USING_FINSH
=
y
CONFIG_FINSH_USING_HISTORY
=
y
CONFIG_FINSH_USING_SYMTAB
=
y
CONFIG_FINSH_USING_DESCRIPTION
=
y
CONFIG_FINSH_THREAD_PRIORITY
=
20
CONFIG_FINSH_THREAD_STACK_SIZE
=
4096
CONFIG_FINSH_CMD_SIZE
=
80
# CONFIG_FINSH_USING_AUTH is not set
CONFIG_FINSH_DEFAULT_PASSWORD
=
"rtthread"
CONFIG_FINSH_USING_MSH
=
y
CONFIG_FINSH_USING_MSH_DEFAULT
=
y
# CONFIG_FINSH_USING_MSH_ONLY is not set
...
...
@@ -77,14 +81,19 @@ CONFIG_DFS_FILESYSTEMS_MAX=2
CONFIG_DFS_FD_MAX
=
4
CONFIG_RT_USING_DFS_ELMFAT
=
y
CONFIG_RT_DFS_ELM_CODE_PAGE
=
437
CONFIG_RT_DFS_ELM_MAX_LFN
=
256
CONFIG_RT_DFS_ELM_WORD_ACCESS
=
y
CONFIG_RT_DFS_ELM_USE_LFN_0
=
y
# CONFIG_RT_DFS_ELM_USE_LFN_1 is not set
# CONFIG_RT_DFS_ELM_USE_LFN_2 is not set
# CONFIG_RT_DFS_ELM_USE_LFN_3 is not set
CONFIG_RT_DFS_ELM_USE_LFN
=
0
CONFIG_RT_DFS_ELM_MAX_LFN
=
255
CONFIG_RT_DFS_ELM_DRIVES
=
2
CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE
=
512
# CONFIG_RT_DFS_ELM_USE_ERASE is not set
CONFIG_RT_DFS_ELM_REENTRANT
=
y
CONFIG_RT_USING_DFS_DEVFS
=
y
# CONFIG_RT_USING_DFS_NET is not set
# CONFIG_RT_USING_DFS_NFS is not set
#
# Device Drivers
...
...
@@ -105,10 +114,13 @@ CONFIG_RT_USING_PIN=y
# CONFIG_RT_USING_USB_DEVICE is not set
#
#
libc
#
POSIX layer and C standard library
#
CONFIG_RT_USING_LIBC
=
y
CONFIG_RT_USING_PTHREADS
=
y
CONFIG_RT_USING_POSIX
=
y
# CONFIG_RT_USING_POSIX_MMAP is not set
CONFIG_RT_USING_POSIX_TERMIOS
=
y
#
# Network stack
...
...
@@ -124,36 +136,68 @@ CONFIG_RT_USING_PTHREADS=y
#
# CONFIG_RT_USING_MODBUS is not set
#
# RT-Thread UI Engine
#
CONFIG_RT_USING_GUIENGINE
=
y
CONFIG_RTGUI_NAME_MAX
=
16
# CONFIG_RTGUI_USING_TTF is not set
CONFIG_RTGUI_USING_FONT16
=
y
CONFIG_RTGUI_USING_FONT12
=
y
# CONFIG_RTGUI_USING_FONTHZ is not set
# CONFIG_RTGUI_IMAGE_XPM is not set
# CONFIG_RTGUI_IMAGE_JPEG is not set
# CONFIG_RTGUI_IMAGE_TJPGD is not set
# CONFIG_RTGUI_IMAGE_PNG is not set
# CONFIG_RTGUI_IMAGE_LODEPNG is not set
# CONFIG_RTGUI_IMAGE_BMP is not set
#
# RT-Thread online packages
#
#
# system packages
#
# CONFIG_PKG_USING_PARTITION is not set
# CONFIG_PKG_USING_SQLITE is not set
#
# IoT - internet of things
#
# CONFIG_PKG_USING_PAHOMQTT is not set
# CONFIG_PKG_USING_WEBCLIENT is not set
# CONFIG_PKG_USING_MONGOOSE is not set
# CONFIG_PKG_USING_WEBTERMINAL is not set
# CONFIG_PKG_USING_CJSON is not set
# CONFIG_PKG_USING_EZXML is not set
#
#
language
packages
#
security
packages
#
# CONFIG_PKG_USING_MBEDTLS is not set
#
#
miscellaneous
packages
#
language
packages
#
CONFIG_PKG_USING_HELLO
=
y
CONFIG_PKG_HELLO_PATH
=
"/packages/misc/hello"
CONFIG_PKG_HELLO_VER
=
"v1.0.0"
# CONFIG_PKG_USING_JERRYSCRIPT is not set
#
# multimedia packages
#
#
#
security
packages
#
tools
packages
#
# CONFIG_PKG_USING_CMBACKTRACE is not set
# CONFIG_PKG_USING_EASYLOGGER is not set
#
#
system
packages
#
miscellaneous
packages
#
# CONFIG_PKG_USING_CMBACKTRACE is not set
CONFIG_PKG_USING_HELLO
=
y
CONFIG_PKG_HELLO_PATH
=
"/packages/misc/hello"
CONFIG_PKG_HELLO_VER
=
"v1.0.0"
CONFIG_RT_USING_UART0
=
y
CONFIG_RT_USING_UART1
=
y
CONFIG_BSP_DRV_CLCD
=
y
bsp/qemu-vexpress-a9/applications/lcd_init.c
0 → 100644
浏览文件 @
252432ba
#include <rtthread.h>
#if defined(RT_USING_RTGUI) || defined(RT_USING_GUIENGINE)
#include <rtgui/driver.h>
int
lcd_init
(
void
)
{
struct
rt_device
*
device
;
device
=
rt_device_find
(
"lcd"
);
if
(
device
)
{
rtgui_graphic_set_device
(
device
);
}
return
0
;
}
INIT_APP_EXPORT
(
lcd_init
);
#endif
bsp/qemu-vexpress-a9/drivers/Kconfig
浏览文件 @
252432ba
config RT_USING_UART0
bool "Enable UART0"
default
y
default
n
config RT_USING_UART1
bool "Enable UART1"
default y
config BSP_DRV_CLCD
bool "CLCD driver"
depends on RT_USING_GUIENGINE
default y
config BSP_DRV_EMAC
bool "EMAC driver"
depends on RT_USING_LWIP
default y
bsp/qemu-vexpress-a9/drivers/SConscript
浏览文件 @
252432ba
...
...
@@ -4,6 +4,12 @@ cwd = GetCurrentDir()
src
=
Glob
(
'*.c'
)
CPPPATH
=
[
cwd
]
if
not
GetDepend
(
'BSP_DRV_EMAC'
):
SrcRemove
(
src
,
[
'drv_lan9118.c'
])
if
not
GetDepend
(
'BSP_DRV_CLCD'
):
SrcRemove
(
src
,
[
'drv_clcd.c'
])
group
=
DefineGroup
(
'Drivers'
,
src
,
depend
=
[
''
],
CPPPATH
=
CPPPATH
)
Return
(
'group'
)
bsp/qemu-vexpress-a9/drivers/drv_clcd.c
0 → 100644
浏览文件 @
252432ba
#include <stdint.h>
#include <string.h>
#include <stdlib.h>
#include <rtthread.h>
#include "drv_clcd.h"
#define CLCD_WIDTH 480
#define CLCD_HEIGHT 320
#define CLCD_DEVICE(dev) (struct drv_clcd_device*)(dev)
#define PL111_CR_EN 0x001
#define PL111_CR_PWR 0x800
#define PL111_IOBASE 0x10020000
#define PL111_PALBASE (PL111_IOBASE + 0x200)
typedef
struct
_PL111MMIO
{
uint32_t
volatile
tim0
;
//0
uint32_t
volatile
tim1
;
//4
uint32_t
volatile
tim2
;
//8
uint32_t
volatile
tim3
;
//c
uint32_t
volatile
upbase
;
//10
uint32_t
volatile
f
;
//14
uint32_t
volatile
control
;
//18
uint32_t
volatile
g
;
//1c
}
PL111MMIO
;
struct
drv_clcd_device
{
struct
rt_device
parent
;
int
width
;
int
height
;
uint8_t
*
fb
;
};
struct
drv_clcd_device
_lcd
;
static
rt_err_t
drv_clcd_init
(
struct
rt_device
*
device
)
{
struct
drv_clcd_device
*
lcd
=
CLCD_DEVICE
(
device
);
lcd
=
lcd
;
/* nothing, right now */
return
RT_EOK
;
}
static
rt_err_t
drv_clcd_control
(
struct
rt_device
*
device
,
int
cmd
,
void
*
args
)
{
struct
drv_clcd_device
*
lcd
=
CLCD_DEVICE
(
device
);
switch
(
cmd
)
{
case
RTGRAPHIC_CTRL_RECT_UPDATE
:
{
struct
rt_device_rect_info
*
info
=
(
struct
rt_device_rect_info
*
)
args
;
info
=
info
;
/* nothing, right now */
}
break
;
case
RTGRAPHIC_CTRL_GET_INFO
:
{
struct
rt_device_graphic_info
*
info
=
(
struct
rt_device_graphic_info
*
)
args
;
RT_ASSERT
(
info
!=
RT_NULL
);
info
->
pixel_format
=
RTGRAPHIC_PIXEL_FORMAT_RGB565
;
// info->pixel_format = RTGRAPHIC_PIXEL_FORMAT_ARGB888;
info
->
bits_per_pixel
=
16
;
info
->
width
=
lcd
->
width
;
info
->
height
=
lcd
->
height
;
info
->
framebuffer
=
lcd
->
fb
;
}
break
;
}
return
RT_EOK
;
}
int
drv_clcd_hw_init
(
void
)
{
PL111MMIO
*
plio
;
struct
rt_device
*
device
=
&
_lcd
.
parent
;
/* memset _lcd to zero */
memset
(
&
_lcd
,
0x0
,
sizeof
(
_lcd
));
_lcd
.
width
=
CLCD_WIDTH
;
_lcd
.
height
=
CLCD_HEIGHT
;
_lcd
.
fb
=
rt_malloc
(
_lcd
.
width
*
_lcd
.
height
*
2
);
if
(
_lcd
.
fb
==
NULL
)
{
rt_kprintf
(
"initialize frame buffer failed!
\n
"
);
return
-
1
;
}
memset
(
_lcd
.
fb
,
0xff
,
_lcd
.
width
*
_lcd
.
height
*
2
);
plio
=
(
PL111MMIO
*
)
PL111_IOBASE
;
plio
->
tim0
=
0x3F1F3C00
|
((
CLCD_WIDTH
/
16
-
1
)
<<
2
);
plio
->
tim1
=
0x080B6000
|
(
CLCD_HEIGHT
-
1
);
plio
->
upbase
=
_lcd
.
fb
;
/* 16-bit 565 color */
plio
->
control
=
0x1921
|
(
0x6
<<
1
);
device
->
type
=
RT_Device_Class_Graphic
;
device
->
init
=
drv_clcd_init
;
device
->
control
=
drv_clcd_control
;
rt_device_register
(
device
,
"lcd"
,
RT_DEVICE_FLAG_RDWR
);
return
0
;
}
INIT_DEVICE_EXPORT
(
drv_clcd_hw_init
);
bsp/qemu-vexpress-a9/drivers/drv_clcd.h
0 → 100644
浏览文件 @
252432ba
#ifndef DRV_CLCD_H__
#define DRV_CLCD_H__
int
drv_clcd_hw_init
(
void
);
#endif
bsp/qemu-vexpress-a9/qemu-dbg.bat
0 → 100644
浏览文件 @
252432ba
qemu
-system-arm -M
vexpress
-a
9
-kernel
rtthread
.elf
-serial
vc
-serial
vc
-S -s
bsp/qemu-vexpress-a9/rtconfig.h
浏览文件 @
252432ba
...
...
@@ -12,9 +12,10 @@
#define RT_TICK_PER_SECOND 100
#define RT_DEBUG
#define RT_USING_OVERFLOW_CHECK
/* RT_DEBUG_INIT is not set */
#define RT_DEBUG_INIT 1
/* RT_DEBUG_THREAD is not set */
#define RT_USING_HOOK
#define IDLE_THREAD_STACK_SIZE 256
/* RT_USING_TIMER_SOFT is not set */
/* Inter-Thread communication */
...
...
@@ -24,6 +25,7 @@
#define RT_USING_EVENT
#define RT_USING_MAILBOX
#define RT_USING_MESSAGEQUEUE
/* RT_USING_SIGNALS is not set */
/* Memory Management */
...
...
@@ -53,11 +55,13 @@
/* Command shell */
#define RT_USING_FINSH
#define FINSH_USING_HISTORY
#define FINSH_USING_SYMTAB
#define FINSH_USING_DESCRIPTION
#define FINSH_THREAD_PRIORITY 20
#define FINSH_THREAD_STACK_SIZE 4096
#define FINSH_CMD_SIZE 80
/* FINSH_USING_AUTH is not set */
#define FINSH_DEFAULT_PASSWORD "rtthread"
#define FINSH_USING_MSH
#define FINSH_USING_MSH_DEFAULT
/* FINSH_USING_MSH_ONLY is not set */
...
...
@@ -70,14 +74,19 @@
#define DFS_FD_MAX 4
#define RT_USING_DFS_ELMFAT
#define RT_DFS_ELM_CODE_PAGE 437
#define RT_DFS_ELM_MAX_LFN 256
#define RT_DFS_ELM_WORD_ACCESS
#define RT_DFS_ELM_USE_LFN_0
/* RT_DFS_ELM_USE_LFN_1 is not set */
/* RT_DFS_ELM_USE_LFN_2 is not set */
/* RT_DFS_ELM_USE_LFN_3 is not set */
#define RT_DFS_ELM_USE_LFN 0
#define RT_DFS_ELM_MAX_LFN 255
#define RT_DFS_ELM_DRIVES 2
#define RT_DFS_ELM_MAX_SECTOR_SIZE 512
/* RT_DFS_ELM_USE_ERASE is not set */
#define RT_DFS_ELM_REENTRANT
#define RT_USING_DFS_DEVFS
/* RT_USING_DFS_NET is not set */
/* RT_USING_DFS_NFS is not set */
/* Device Drivers */
...
...
@@ -96,10 +105,13 @@
/* RT_USING_USB_HOST is not set */
/* RT_USING_USB_DEVICE is not set */
/*
libc
*/
/*
POSIX layer and C standard library
*/
#define RT_USING_LIBC
#define RT_USING_PTHREADS
#define RT_USING_POSIX
/* RT_USING_POSIX_MMAP is not set */
#define RT_USING_POSIX_TERMIOS
/* Network stack */
...
...
@@ -111,24 +123,57 @@
/* RT_USING_MODBUS is not set */
/* RT-Thread UI Engine */
#define RT_USING_GUIENGINE
#define RTGUI_NAME_MAX 16
/* RTGUI_USING_TTF is not set */
#define RTGUI_USING_FONT16
#define RTGUI_USING_FONT12
/* RTGUI_USING_FONTHZ is not set */
/* RTGUI_IMAGE_XPM is not set */
/* RTGUI_IMAGE_JPEG is not set */
/* RTGUI_IMAGE_TJPGD is not set */
/* RTGUI_IMAGE_PNG is not set */
/* RTGUI_IMAGE_LODEPNG is not set */
/* RTGUI_IMAGE_BMP is not set */
/* RT-Thread online packages */
/* system packages */
/* PKG_USING_PARTITION is not set */
/* PKG_USING_SQLITE is not set */
/* IoT - internet of things */
/* language packages */
/* PKG_USING_PAHOMQTT is not set */
/* PKG_USING_WEBCLIENT is not set */
/* PKG_USING_MONGOOSE is not set */
/* PKG_USING_WEBTERMINAL is not set */
/* PKG_USING_CJSON is not set */
/* PKG_USING_EZXML is not set */
/*
miscellaneous
packages */
/*
security
packages */
#define PKG_USING_HELLO
/* PKG_USING_MBEDTLS is not set */
/*
multimedia
packages */
/*
language
packages */
/*
security packages
*/
/*
PKG_USING_JERRYSCRIPT is not set
*/
/* system packages */
/* multimedia packages */
/* tools packages */
/* PKG_USING_CMBACKTRACE is not set */
/* PKG_USING_EASYLOGGER is not set */
/* miscellaneous packages */
#define PKG_USING_HELLO
#define RT_USING_UART0
#define RT_USING_UART1
#define BSP_DRV_CLCD
#endif
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录