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
14 changes: 14 additions & 0 deletions bsp/gd32/risc-v/gd32vw553h-eval/board/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,20 @@ 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_FINISH_TEST
bool "Enable the test of AT24C02"
default n

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')
24 changes: 24 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,24 @@
import os
from building import *

objs = []
cwd = GetCurrentDir()

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

if GetDepend(['BSP_USING_AT24C02_FINISH_TEST']):
path += [cwd + "/at24c02"]
src += ["./at24c02/at24c02_sample.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')
Copy link
Member

Choose a reason for hiding this comment

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

建议对接到UTEST框架的方式,可以参考:https://github.com/RT-Thread/rt-thread/tree/master/bsp/k230/drivers/utest

Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
#include "rtconfig.h"

#ifdef BSP_USING_AT24C02

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

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

static at24cxx_device_t dev = RT_NULL;

/**
* @brief AT24C02 EEPROM测试函数
*
* @param argc 参数个数
* @param argv 参数数组
*/
void gd32_at24c02_test(int argc, char *argv[])
Copy link
Contributor

Choose a reason for hiding this comment

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

https://github.com/XiaojieFan/at24cxx/blob/171e3e3199fafdb49ef8a47d93db4accb6c794ed/at24cxx.c#L185C10-L200

  • 用这个函数应该就可以了吧?
  • 除非是要测试读写速度?
  • 那也可以加到软件包中的finsh函数

Copy link
Contributor Author

Choose a reason for hiding this comment

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

将这个函数改成直接对这个块板子的板载外设进行初始化如何,以此方便在开启板载外设时候能够直接初始化。
写这个测试函数我也感到有些多余。

Copy link
Contributor Author

Choose a reason for hiding this comment

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

将这个函数改成直接对这个块板子的板载外设进行初始化如何,以此方便在开启板载外设时候能够直接初始化。
写这个测试函数我也感到有些多余。

Copy link
Contributor

Choose a reason for hiding this comment

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

将这个函数改成直接对这个块板子的板载外设进行初始化如何,以此方便在开启板载外设时候能够直接初始化。 写这个测试函数我也感到有些多余。

挺好的,执行初始化->调用检测函数->判断是否成功->返回错误码

{
rt_err_t result = RT_EOK;
uint8_t write_buffer[] = TEST_DATA;
uint8_t AddrInput = 0x0;
int data_size = sizeof(write_buffer);

uint8_t read_buffer[50] = {0};

/* 初始化设备 */
if (dev == RT_NULL)
{
dev = at24cxx_init(AT24C02_I2C_NAME, AddrInput);
if (dev == RT_NULL)
{
rt_kprintf("AT24C02 initialization failed\n");
return;
}
rt_kprintf("AT24C02 initialized successfully\n");
}

/* 写入数据 */
result = at24cxx_write(dev, 0, write_buffer, data_size);
if (result == RT_ERROR)
{
rt_kprintf("Failed to write data to AT24C02\n");
goto cleanup;
}
rt_kprintf("Successfully wrote to AT24C02: %s\n", write_buffer);

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


cleanup:
/* 清理资源 */

at24cxx_deinit(dev);

return;
}

MSH_CMD_EXPORT(gd32_at24c02_test, GD32 AT24C02 EEPROM test function);

#endif
Loading