RISC-V技术论坛
直播中

jsqueh

9年用户 1297经验值
私信 关注
[问答]

使用hbird-e-sdk对demo_nice进行编译时,需要对demo_nice.c文件进行修改哪些地方?

使用hbird-e-sdk对demo_nice进行编译时,需要对demo_nice.c文件进行修改哪些地方

回帖(1)

远不及你

2025-10-29 18:23:34

使用hbird-e-sdk编译demo_nice工程时,通常需要对demo_nice.c文件进行以下关键修改(具体取决于硬件平台和功能需求):


1. 系统时钟频率配置



  • 修改系统时钟频率匹配开发板实际晶振:
     // 在main函数或初始化代码中修改
    SystemClock_Config(); // 函数内部调整时钟分频

    #define SYSTEM_CLOCK_FREQUENCY 8000000 // 示例:8MHz晶振


2. 外设引脚映射调整



  • 根据开发板原理图修改GPIO引脚:
     // 例如LED引脚修改
    #define LED_GPIO_PORT  GPIOA
    #define LED_PIN        GPIO_PIN_5 // 原PA1改为PA5


3. 串口配置更新



  • 调整串口号和波特率:
     UART_Init(UART0, 115200); // 原UART1改为UART0


4. 中断处理函数



  • 检查并修正中断服务例程(ISR)名称:
     void EXTI0_IRQHandler(void) { ... } // 确保名称与startup文件一致


5. 内存地址映射



  • 适配具体SoC的内存布局:
     #define MY_PERIPHERAL_BASE (0x10000000) // 外设基地址变更


6. 外设驱动适配



  • 修改SPI/I2C等初始化参数:
     SPI_InitTypeDef spi;
    spi.Mode = SPI_MODE_MASTER; // 主从模式配置


7. 调试输出优化



  • 禁用无效调试语句:
     // #define DEBUG // 注释掉全局调试宏


8. 硬件依赖代码



  • 替换开发板特有操作:
     // 原开发板LED操作替换
    LED_ON();  // 修改为新的宏或函数


验证步骤:




  1. 检查时钟树

    SystemClock_Config()中确认PLL分频系数与实际硬件匹配。




  2. 对照引脚分配表

    核对所有GPIO/I2C/SPI引脚与原理图一致。




  3. 串口回环测试

    添加简单测试代码验证串口:


    UART_SendData(UART0, 'A'); // 发送测试字符



  4. 查看链接脚本

    确认hbird.ld中的内存区域与芯片规格一致。





提示:  



  • 优先参考hbird-e-sdk/board目录下对应开发板的示例代码  

  • 使用make upload BOARD=hbird_devkit指定开发板配置  

  • 调试时启用-Og -g3编译选项保留调试信息  



典型修改后的差异示例:


- #define LED_PIN  GPIO_PIN_1
+ #define LED_PIN  GPIO_PIN_5  // 适配HBird开发板

- UART_Init(UART1, 9600);
+ UART_Init(UART0, 115200);   // 使用主串口

- // #error "Define your system frequency here!"
+ #define SYS_CLOCK_FREQ 16000000  // 16MHz晶振

建议通过git diff记录所有改动,便于后续移植到新硬件平台时快速对比调整。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分