要开始使用ARM-2D,前期两个准备工作需要完成:

  1. 一块mcu内核为cortex-M的板子,带显示屏(彩色TFT屏,分辨率建议320x240或以上,带TP更佳)。
  2. 基于这个板子可以正常运行的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开发了。

Logo

一站式 AI 云服务平台

更多推荐