【平头哥RVB2601创意应用开发】下载程序报错
[复制链接]
【问题】下载程序报错为:
报错的给出的提示是:1、检查物理连接。经检查跳线是正常的。
2、检查是不是上电了,经检查,显示屏是亮的,LED灯也是亮的。
3、检查时钟。目前CH2601是正常工作的,还可以正常通讯。
4、检查电平。目前串口是可以打印数据的,也没有问题。
跟平头哥工单交流了,目前还没有得到解决。希望各位帮看看是什么问题。
【情况说明】为了使用串口1,我想使用了下载口的PA19、PA20。下载程序后,重启,串口1是可以用了,但是下载程序就出现连接不上了。
board.c
/*
* Copyright (C) 2019-2020 Alibaba Group Holding Limited
*/
#include <board.h>
#include <drv/pin.h>
static void board_pinmux_config(void)
{
csi_pin_set_mux(CONSOLE_TXD, CONSOLE_TXD_FUNC);
csi_pin_set_mux(CONSOLE_RXD, CONSOLE_RXD_FUNC);
csi_pin_set_mux(PA20, PA20_UART1_TX);
csi_pin_set_mux(PA19, PA19_UART1_RX);
}
void board_init(void)
{
board_pinmux_config();
}
init.c
#include <stdbool.h>
#include <aos/aos.h>
#include <yoc/yoc.h>
#include <devices/devicelist.h>
#include "board.h"
#include "app_init.h"
#include "drv/pin.h"
#include "drv/uart.h"
const char *TAG = "INIT";
#ifndef CONSOLE_UART_IDX
#define CONSOLE_UART_IDX 0
#endif
#include <aos/hal/uart.h>
#define UART1_PORT_NUM 1
#define UART_BUF_SIZE 10
#define UART_TX_TIMEOUT 10
#define UART_RX_TIMEOUT 10
/* define dev */
uart_dev_t uart1;
/* data buffer */
char uart_data_buf[UART_BUF_SIZE];
void init_uart1_init(void)
{
int count = 0;
int ret = -1;
int i = 0;
int rx_size = 0;
/* uart port set */
uart1.port = UART1_PORT_NUM;
/* uart attr config */
uart1.config.baud_rate = 115200;
uart1.config.data_width = DATA_WIDTH_8BIT;
uart1.config.parity = NO_PARITY;
uart1.config.stop_bits = STOP_BITS_1;
uart1.config.flow_control = FLOW_CONTROL_DISABLED;
uart1.config.mode = MODE_TX_RX;
/* init uart1 with the given settings */
ret = hal_uart_init(&uart1);
if (ret != 0) {
printf("uart1 init error !\n");
}
/* init the tx buffer */
for (i = 0; i < UART_BUF_SIZE; i++) {
uart_data_buf[i] = i + 1;
}
/* send 0,1,2,3,4,5,6,7,8,9 by uart1 */
ret = hal_uart_send(&uart1, uart_data_buf, UART_BUF_SIZE, UART_TX_TIMEOUT);
if (ret == 0) {
printf("uart1 data send succeed !\n");
}
}
void board_yoc_init()
{
board_init();
uart_csky_register(1);
console_init(CONSOLE_UART_IDX, 115200, 128);
ulog_init();
aos_set_log_level(AOS_LL_DEBUG);
LOGI(TAG, "Build:%s,%s",__DATE__, __TIME__);
/* load partition */
// int ret = partition_init();
// if (ret <= 0) {
// LOGE(TAG, "partition init failed");
// } else {
// LOGI(TAG, "find %d partitions", ret);
// }
board_cli_init();
}
在主程中启动init_uart1_init();串口1的输出也是正常。
|