要开始使用ARM-2D,前期两个准备工作需要完成:
- 一块mcu内核为cortex-M的板子,带显示屏(彩色TFT屏,分辨率建议320x240或以上,带TP更佳)。
- 基于这个板子可以正常运行的keil MDK的工程。
好了,可以开始了。
如何快速开始,推荐从下面的文章和公众号开始:
裸机思维公众号-ARM2D入门系列
在按照文章移植过程中,有几个问题补充一下:
- perf_counter的编译问题。
keil默认的配置,编译perf_counter的汇编文件,会提示语法错误。
在keil的汇编页面,将汇编器的选项选择为auto select模式解决此问题。
汇编语言语法支持切换 - 半主机调试模式关闭
编译完成后,下载程序,直接运行,会出现死机,但是用调试器连接debug模式,又可以正常运行,只是进入main函数的时间比较长。
此问题为调用了系统的一些函数,启动了半主机调试模式,但是我们又没有实现相关的接口导致的问题。
解决办法:
在任意c文件中插入如下代码即可
#if defined(__MICROLIB)
void __aeabi_assert(const char *chCond, const char *chLine, int wErrCode)
{
(void)chCond;
(void)chLine;
(void)wErrCode;
while(1) {
}
}
#else
//#pragma import(__use_no_semihosting)
#if (__ARMCC_VERSION >= 6010050)
__asm(".global __use_no_semihosting\n\t");
__asm(".global __ARM_use_no_argv\n\t");
#else
#pragma import(__use_no_semihosting)
struct __FILE
{
int handle;
/* Whatever you require here. If the only file you are using is */
/* standard output using printf() for debugging, no file handling */
/* is required. */
};
#endif
处理完以上两个问题后,就可以正常开始学习使用arm-2d开发了。