【爱普特 APT32F110 ev board 试用测评连载】给CDK平台提个建议

拿到板子后第一个程序是什么? 当然是做一灯大师了,点亮一个LED等让它闪烁。

查找原理图,找到和板子上对应的LED是哪个GPIO口,这就不多说了。说下我debug过程中发现的CDK软件平台的和奇特的地方,不知道算不算bug。

首先用第一个程序,也就是注释掉了tash任务的程序,因为我不需要用到LCD,做最小改动。

#include <string.h>
#include <csi_drv.h>
#include <iostring.h>
 
#include "demo.h"
//#include "do_task.h"
 
/* Private macro-----------------------------------------------------------*/
 
/* externs function--------------------------------------------------------*/
extern void system_init(void);
extern void board_init(void);
extern void user_demo(void);
 
int main()
start_system();
system_init();
board_init();
csi_pin_set_mux(PB02, PB02_OUTPUT); //PA06 output
csi_pin_set_high(PB02); //PA06 output high;
 
my_printf("Hello World~~~~~~~\n"); //print message
 
user_demo(); //demo
 
 
while(1)
{
mdelay(500); //delay 100ms
csi_pin_toggle(PB02); //PA06 toggle
}
 
    return 0;
}
程序编译出来 0 errors , 1warning, 不管它,烧录程序后发现LCD屏还是亮了,LED闪 了几下就不动了,看起来就像还是在跑demo程序。
检查debug的动作,在project setting里面选的是Erase Full Chip,照理说在烧录新的程序前应该把旧的内容擦掉的,我担心是新程序没有生成bin文件,于是到output文件夹里面看了一下,最新的bin文件修改日期就是我刚刚编译后生成的。说明bin文件也没错。
第二步,尝试修改程序,去掉所有可能多于的部分,只保留让系统初始化配置和配置GPIO2的部分,如下:
#include <string.h>
#include <csi_drv.h>
#include <iostring.h>
//#include "demo.h"
//#include "do_task.h"
/* Private macro-----------------------------------------------------------*/
/* externs function--------------------------------------------------------*/
extern void system_init(void);
extern void board_init(void);
//extern void user_demo(void);
/* externs variablesr------------------------------------------------------*/
/* Private variablesr------------------------------------------------------*/
int main()
{
//start_system();
system_init();
board_init();
csi_pin_set_mux(PB02, PB02_OUTPUT); //PA06 output
csi_pin_set_high(PB02); //PA06 output high;
//my_printf("Hello World~~~~~~~\n"); //print message
//user_demo(); //demo
while(1)
{
mdelay(500); //delay 100ms
csi_pin_toggle(PB02); //PA06 toggle
}
    return 0;
}
程序编译后 0 errors , 0 warnings,然后再烧录程序,这下LCD没有出现东西,只有PB2的LED灯在闪烁。
 
经过这个过程,有几个关于CDK工具的疑问:
1、程序编译有warning为啥烧录进去没有如期运行?
2、Download function勾选的是Erase Full Chip为啥跑起来还是上次运行过的demo程序,说明这个earse没有成功。就算新程序烧录没有成功,也不应该跑老程序。
3、从现象看,程序需要没有errors和没有warnings才能正常运行,那么程序有warning为啥能够烧录?
 
陈子建的头像
陈子建

comment

新手来了大家快跑啊