【AT32A403A 车规MCU开发板】 移植rt-thread
[复制链接]
学习移植RT-Thread系统到开发板。
一、RT-Thread源码下载
官网下载地址:
二、源码移植
2.1、复制BSP/AT32目录下资源接近的芯片工程目录
复制at32f403a-start -> at32a403a_board
2.2、复制芯片库文件
将at32a103a芯片的库文件复制到libraries目录下
2.3、将项目中的这些文件替换
>替换board.c中的system_clock_config函数
void system_clock_config(void)
{
/* reset crm */
crm_reset();
crm_clock_source_enable(CRM_CLOCK_SOURCE_HEXT, TRUE);
/* wait till hext is ready */
while(crm_hext_stable_wait() == ERROR)
{
}
/* config pll clock resource */
crm_pll_config(CRM_PLL_SOURCE_HEXT_DIV, CRM_PLL_MULT_50, CRM_PLL_OUTPUT_RANGE_GT72MHZ);
/* config hext division */
crm_hext_clock_div_set(CRM_HEXT_DIV_2);
/* enable pll */
crm_clock_source_enable(CRM_CLOCK_SOURCE_PLL, TRUE);
/* wait till pll is ready */
while(crm_flag_get(CRM_PLL_STABLE_FLAG) != SET)
{
}
/* config ahbclk */
crm_ahb_div_set(CRM_AHB_DIV_1);
/* config apb2clk, the maximum frequency of APB1/APB2 clock is 100 MHz */
crm_apb2_div_set(CRM_APB2_DIV_2);
/* config apb1clk, the maximum frequency of APB1/APB2 clock is 100 MHz */
crm_apb1_div_set(CRM_APB1_DIV_2);
/* enable auto step mode */
crm_auto_step_mode_enable(TRUE);
/* select pll as system clock source */
crm_sysclk_switch(CRM_SCLK_PLL);
/* wait till pll is used as system clock source */
while(crm_sysclk_switch_status_get() != CRM_SCLK_PLL)
{
}
/* disable auto step mode */
crm_auto_step_mode_enable(FALSE);
/* update system_core_clock global variable */
system_core_clock_update();
}
>替换库
>头文件替换
将项目中的at32f403.h头文件替换成at32a403.h
>修改头文件路径
修改芯片型号和头文件路径
三、编译及下载程序
3.1、编译项目
3.2、下载程序
四、程序运行
4.1、串口输出
4.2、LED指示灯显示
rt-thread
|