Merge pull request #2520 from lymzzyh/k210-enchance

K210 enchance
This commit is contained in:
Bernard Xiong 2019-03-29 10:52:09 +08:00 committed by GitHub
commit 15d9967a4e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 58 additions and 29 deletions

View File

@ -117,3 +117,10 @@ void rt_hw_board_init(void)
rt_components_board_init();
#endif
}
void rt_hw_cpu_reset(void)
{
sysctl->soft_reset.soft_reset = 1;
while(1);
}
MSH_CMD_EXPORT_ALIAS(rt_hw_cpu_reset, reboot, reset machine);

View File

@ -15,53 +15,71 @@
#define HS_GPIO(n) (FUNC_GPIOHS0 + n)
#define IOCONFIG(pin,func) {pin, func, #func}
static struct io_config
{
int io_num;
fpioa_function_t func;
const char * func_name;
} io_config[] =
{
#ifdef BSP_USING_LCD
{BSP_LCD_CS_PIN, FUNC_SPI0_SS0}, /* LCD CS PIN */
{BSP_LCD_WR_PIN, FUNC_SPI0_SCLK}, /* LCD WR PIN */
{BSP_LCD_DC_PIN, HS_GPIO(LCD_DC_PIN)}, /* LCD DC PIN */
IOCONFIG(BSP_LCD_CS_PIN, FUNC_SPI0_SS0), /* LCD CS PIN */
IOCONFIG(BSP_LCD_WR_PIN, FUNC_SPI0_SCLK), /* LCD WR PIN */
IOCONFIG(BSP_LCD_DC_PIN, HS_GPIO(LCD_DC_PIN)), /* LCD DC PIN */
#endif
#ifdef BSP_USING_CAMERA
{BSP_CAMERA_SCCB_SDA_PIN, FUNC_SCCB_SDA},
{BSP_CAMERA_SCCB_SCLK_PIN, FUNC_SCCB_SCLK},
{BSP_CAMERA_CMOS_RST_PIN, FUNC_CMOS_RST},
{BSP_CAMERA_CMOS_VSYNC_PIN, FUNC_CMOS_VSYNC},
{BSP_CAMERA_CMOS_PWDN_PIN, FUNC_CMOS_PWDN},
{BSP_CAMERA_CMOS_XCLK_PIN, FUNC_CMOS_XCLK},
{BSP_CAMERA_CMOS_PCLK_PIN, FUNC_CMOS_PCLK},
{BSP_CAMERA_CMOS_HREF_PIN, FUNC_CMOS_HREF},
IOCONFIG(BSP_CAMERA_SCCB_SDA_PIN, FUNC_SCCB_SDA),
IOCONFIG(BSP_CAMERA_SCCB_SCLK_PIN, FUNC_SCCB_SCLK),
IOCONFIG(BSP_CAMERA_CMOS_RST_PIN, FUNC_CMOS_RST),
IOCONFIG(BSP_CAMERA_CMOS_VSYNC_PIN, FUNC_CMOS_VSYNC),
IOCONFIG(BSP_CAMERA_CMOS_PWDN_PIN, FUNC_CMOS_PWDN),
IOCONFIG(BSP_CAMERA_CMOS_XCLK_PIN, FUNC_CMOS_XCLK),
IOCONFIG(BSP_CAMERA_CMOS_PCLK_PIN, FUNC_CMOS_PCLK),
IOCONFIG(BSP_CAMERA_CMOS_HREF_PIN, FUNC_CMOS_HREF),
#endif
#ifdef BSP_USING_SPI1
{BSP_SPI1_CLK_PIN, FUNC_SPI1_SCLK},
{BSP_SPI1_D0_PIN, FUNC_SPI1_D0},
{BSP_SPI1_D1_PIN, FUNC_SPI1_D1},
IOCONFIG(BSP_SPI1_CLK_PIN, FUNC_SPI1_SCLK),
IOCONFIG(BSP_SPI1_D0_PIN, FUNC_SPI1_D0),
IOCONFIG(BSP_SPI1_D1_PIN, FUNC_SPI1_D1),
#ifdef BSP_USING_SPI1_AS_QSPI
{BSP_SPI1_D2_PIN, FUNC_SPI1_D2},
{BSP_SPI1_D3_PIN, FUNC_SPI1_D3},
IOCONFIG(BSP_SPI1_D2_PIN, FUNC_SPI1_D2),
IOCONFIG(BSP_SPI1_D3_PIN, FUNC_SPI1_D3),
#endif
#ifdef BSP_SPI1_USING_SS0
{BSP_SPI1_SS0_PIN, HS_GPIO(SPI1_CS0_PIN)},
IOCONFIG(BSP_SPI1_SS0_PIN, HS_GPIO(SPI1_CS0_PIN)),
#endif
#ifdef BSP_SPI1_USING_SS1
{BSP_SPI1_SS1_PIN, HS_GPIO(SPI1_CS1_PIN)},
IOCONFIG(BSP_SPI1_SS1_PIN, HS_GPIO(SPI1_CS1_PIN)),
#endif
#ifdef BSP_SPI1_USING_SS2
{BSP_SPI1_SS2_PIN, HS_GPIO(SPI1_CS2_PIN)},
IOCONFIG(BSP_SPI1_SS2_PIN, HS_GPIO(SPI1_CS2_PIN)),
#endif
#ifdef BSP_SPI1_USING_SS3
{BSP_SPI1_SS3_PIN, HS_GPIO(SPI1_CS3_PIN)},
IOCONFIG(BSP_SPI1_SS3_PIN, HS_GPIO(SPI1_CS3_PIN)),
#endif
#endif
};
static int print_io_config()
{
int i;
rt_kprintf("IO Configuration Table\n");
rt_kprintf("┌───────┬────────────────────────┐\n");
rt_kprintf("│Pin │Function │\n");
rt_kprintf("├───────┼────────────────────────┤\n");
for(i = 0; i < sizeof io_config / sizeof io_config[0]; i++)
{
rt_kprintf("│%-2d │%-24.24s│\n", io_config[i].io_num, io_config[i].func_name);
}
rt_kprintf("└───────┴────────────────────────┘\n");
return 0;
}
MSH_CMD_EXPORT_ALIAS(print_io_config, io, print io config);
int io_config_init(void)
{

View File

@ -33,7 +33,7 @@ SECTIONS
*(.start);
} > SRAM
. = ALIGN(4);
. = ALIGN(8);
.text :
{
@ -46,24 +46,28 @@ SECTIONS
*(.gnu.linkonce.t*)
/* section information for finsh shell */
. = ALIGN(4);
. = ALIGN(8);
__fsymtab_start = .;
KEEP(*(FSymTab))
__fsymtab_end = .;
. = ALIGN(4);
. = ALIGN(8);
__vsymtab_start = .;
KEEP(*(VSymTab))
__vsymtab_end = .;
. = ALIGN(4);
. = ALIGN(8);
/* section information for initial. */
. = ALIGN(4);
. = ALIGN(8);
__rt_init_start = .;
KEEP(*(SORT(.rti_fn*)))
__rt_init_end = .;
. = ALIGN(4);
. = ALIGN(8);
. = ALIGN(4);
__rt_utest_tc_tab_start = .;
KEEP(*(UtestTcTab))
__rt_utest_tc_tab_end = .;
. = ALIGN(8);
_etext = .;
} > SRAM
@ -74,7 +78,7 @@ SECTIONS
} > SRAM
.eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } > SRAM
. = ALIGN(4);
. = ALIGN(8);
.data :
{

View File

@ -270,7 +270,7 @@ struct exception_stack_frame
void print_stack_frame(uintptr_t * sp)
{
struct exception_stack_frame * esf = (struct exception_stack_frame *)sp;
struct exception_stack_frame * esf = (struct exception_stack_frame *)(sp+1);
rt_kprintf("\n=================================================================\n");
rt_kprintf("x1 (ra : Return address ) ==> 0x%08x%08x\n", esf->x1 >> 32 , esf->x1 & UINT32_MAX);