Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions bsp/gd32/risc-v/gd32vw553h-eval/board/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,26 @@ endmenu

menu "Board extended module Drivers"

menuconfig BSP_USING_AT24C02
bool "Enable AT24C02 I2C0( SCL[PA2 : 2] SDA[PA3 : 3] )"
default n
select PKG_USING_AT24CXX
select PKG_AT24CXX_EE_TYPE_AT24C02

if BSP_USING_AT24C02

config BSP_USING_AT24C02_UTEST
bool "Enable the utest of AT24C02"
default n
select RT_USING_UTEST
select RT_USING_ULOG
select ULOG_USING_ISR_LOG

config BSP_USING_AT24C02_INIT
bool "Init the model and check it"
default y

endif
endmenu

endmenu
Expand Down
6 changes: 6 additions & 0 deletions bsp/gd32/risc-v/gd32vw553h-eval/board/SConscript
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,10 @@ if rtconfig.PLATFORM in ['gcc']:
CPPDEFINES = ['GD32VW553H_EVAL']
group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)

list = os.listdir(cwd)
for item in list:
if os.path.isfile(os.path.join(cwd, item, 'SConscript')):
group = group + SConscript(os.path.join(item, 'SConscript'))


Return('group')
6 changes: 6 additions & 0 deletions bsp/gd32/risc-v/gd32vw553h-eval/board/linker_scripts/link.lds
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,12 @@ SECTIONS
__rt_init_end = .;
. = ALIGN(4);

/* section information for utest */
. = ALIGN(4);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

缩进调整下

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

缩进调整下

__rt_utest_tc_tab_start = .;
KEEP(*(UtestTcTab))
__rt_utest_tc_tab_end = .;

/* section information for modules */
. = ALIGN(4);
__rtmsymtab_start = .;
Expand Down
28 changes: 28 additions & 0 deletions bsp/gd32/risc-v/gd32vw553h-eval/board/port/SConscript
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import os
from building import *

objs = []
cwd = GetCurrentDir()

# add general drivers
src = []
path = [cwd]

if GetDepend(['BSP_USING_AT24C02']):
path += [cwd + "/at24c02"]

if GetDepend(['BSP_USING_AT24C02_UTEST']):
src += ["./at24c02/test_at24c02.c"]

if GetDepend(['BSP_USING_AT24C02_INIT']):
src += ['./at24c02/at24c02.c']

CPPDEFINES = ['GD32VW553H_EVAL']
group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)

list = os.listdir(cwd)
for item in list:
if os.path.isfile(os.path.join(cwd, item, 'SConscript')):
group = group + SConscript(os.path.join(item, 'SConscript'))

Return('group')
36 changes: 36 additions & 0 deletions bsp/gd32/risc-v/gd32vw553h-eval/board/port/at24c02/at24c02.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#include "rtconfig.h"

#ifdef BSP_USING_AT24C02_INIT

#include "at24c02.h"

at24cxx_device_t gd32_at24c02 = RT_NULL;


Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

多余的换行请删除,其余的文件也是

static int init_gd32_at24c02(void)
{
rt_err_t result = RT_EOK;

gd32_at24c02 = at24cxx_init(AT24C02_I2C_NAME, AT24C02_ADDR_INPUT);

if (gd32_at24c02 == RT_NULL)
{
rt_kprintf("AT24C02 initialization failed\n");
return RT_ERROR;
}

result = at24cxx_check(gd32_at24c02);

if (result == RT_ERROR)
{
rt_kprintf("AT24C02 check failed\n");
return RT_ERROR;
}

return RT_EOK;
}


INIT_DEVICE_EXPORT(init_gd32_at24c02);

#endif
18 changes: 18 additions & 0 deletions bsp/gd32/risc-v/gd32vw553h-eval/board/port/at24c02/at24c02.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#ifndef AT24C02_H
#define AT24C02_H

#include <rtthread.h>
#include "at24cxx.h"


#define AT24C02_I2C_NAME "i2c0"
#define AT24C02_ADDR_INPUT 0x0


extern at24cxx_device_t gd32_at24c02;



Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

多余的换行删除吧


#endif // AT24C02_H

91 changes: 91 additions & 0 deletions bsp/gd32/risc-v/gd32vw553h-eval/board/port/at24c02/test_at24c02.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
#include "rtconfig.h"

#ifdef BSP_USING_AT24C02

#include "at24cxx.h"
#include <rtthread.h>
#include "utest.h"

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1



#define AT24C02_I2C_NAME "i2c0"
#define TEST_DATA "WELCOM TO RTT"

static at24cxx_device_t dev = RT_NULL;


static rt_err_t test_at24c02_init(void)
{
rt_err_t result = RT_EOK;
uint8_t AddrInput = 0x0;

dev = at24cxx_init(AT24C02_I2C_NAME, AddrInput);
if (dev == RT_NULL)
{
LOG_E("AT24C02 initialization failed\n");
result = RT_ERROR;
}

return result;
}

static void test_at24c02_example(void)
{
uint8_t write_buffer[] = TEST_DATA;
int data_size = sizeof(write_buffer);
rt_err_t result = RT_EOK;

uint8_t read_buffer[50] = {0};
/* 写入数据 */
result = at24cxx_write(dev, 0, write_buffer, data_size);
if (result == RT_ERROR)
{
LOG_E("Failed to write data to AT24C02\n");
}
LOG_I("Successfully wrote to AT24C02: %s\n", write_buffer);

/* 读取数据 */
result = at24cxx_read(dev, 0, read_buffer, data_size);
if (result == RT_ERROR)
{
LOG_E("Failed to read data from AT24C02\n");
}
LOG_I("Successfully read from AT24C02: %s\n", read_buffer);

uassert_str_equal(write_buffer, read_buffer);

/* 检查数据 */
result = at24cxx_check(dev);

uassert_true(result == RT_EOK);

return;

}



static rt_err_t test_at24c02_deinit(void)
{

if (dev != RT_NULL)
{
at24cxx_deinit(dev);
dev = RT_NULL;
return RT_EOK;
}

return RT_ERROR;

}


static void test_case(void)
{
UTEST_UNIT_RUN(test_at24c02_example);
}

UTEST_TC_EXPORT(test_case, "bsp.gd32.port.at24c02" , test_at24c02_init, test_at24c02_deinit, 100);


#endif
Loading