[ARM-2D 专题] 1.开始:基本工程搭建,编译和开发环境配置问题解决

要开始使用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开发了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/659203.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

科技守护,河流水文监测保障水资源安全!

中小河流是城乡水资源的补给,又是不可或缺的排放渠道,维系着城乡水资源的平衡与生态的健康。然而,随着工业化、城市化的快速推进,河流生态环境面临着越来越大的压力。为了有效保护和合理利用河流资源,河流水文监测成为…

vs code 中使用SSH 连接远程的Ubuntu系统

如下图,找到对应的位置 在电脑上找到以下位置 打开配置如下,记住,那个root为你的用户名,这个用户名,具体根据你的用户名来设置,对应的密码就是你登录Ubuntu时的密码 Host root192.168.0.64User rootHostNa…

第98天:权限提升-WIN 全平台MSF 自动化CS 插件化EXP 筛选溢出漏洞

目录 思维导图 前置知识 案例一: Web&Win2008-人工手动&全自动msf-筛选&下载&利用 手动 全自动msf 案例二: Web&Win2019-CS 半自动-反弹&插件&利用 思维导图 前置知识 提权方式,这里讲的是溢出漏洞 windows权限 常…

实时合成 1 秒频订单簿快照:DolphinDB INSIGHT 行情插件与订单簿引擎应用

INSIGHT 是华泰证券依托大数据存储、实时分析等领域的技术积累,整合接入国内多家交易所高频行情数据,为投资者提供集行情接入、推送、回测、计算及分析等功能于一体的行情数据服务解决方案。基于 INSIGHT 官方提供的行情数据服务 C SDK(TCP 版…

HTML静态网页成品作业(HTML+CSS)——动漫海贼王介绍网页(1个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有1个页面。 二、作品演示 三、代…

超分论文走读

codeFormer 原始动机 高度不确定性,模糊到高清,存在一对多的映射纹理细节丢失人脸身份信息丢失 模型实现 训练VQGAN 从而得到HQ码本空间作为本文的离散人脸先验。为了降低LQ-HQ映射之间的不确定性,我们设计尽量小的码本空间和尽量短的Code…

人人都是产品经理,尼恩产品经理面试宝典(史上最全、定期更新)

《人人都是产品经理,尼恩产品经理面试宝典》(史上最全、定期更新) 本文版本说明:V1 IT不老新物种 的定义 大龄男IT :APM 架构经理 项目经理 高级开发,没有中年危机 大龄女IT:DPM 产品经理 …

Simulink从0搭建模型07-P8for循环的使用

Simulink从0搭建模型07-P8for循环的使用 今日学习内容1. For Iterator Subsystem模块介绍1.1. 累加器1.2. For Iterator1.3.小结 2. states介绍3. Set next i(相当break)学习心得 今日学习内容 b站视频 【Simulink 0基础入门教程 P8 for循环的使用 For Itrator Sub…

Power Bi 自定义进度条,圆角框,矩阵图标的实现

最近项目在做Power BI,我总结了几个常用的自定义样式,分享一下做法。 比如我们要实现如图这样的一个样式: 这包含了一个带文字的自定义进度条,矩阵有树型展开以及图标显示,最外面有圆角框包围。我觉得这几个样式出现…

ATA-2021B高压放大器在锂电池超声检测中的应用

锂电池一种高能量密度的电池,已经广泛应用于可穿戴设备、移动电话、笔记本电脑和电动汽车等领域中。然而,其在使用过程中存在着一定的安全隐患,锂电池内部的化学反应和充放电过程可能会导致电池发热,甚至发生燃烧。Aigtek安泰电子…

走进数字艺术的世界:一种创新的艺术表达方式

进入数字时代,计算机将我们生活的方方面面都进行了转化。当然艺术领域也不例外。随着数字技术和计算机程序的发展和普及,“数字艺术”的概念应试而生。那么,所谓的数字艺术到底是什么呢?数字艺术的作用是什么?新手如何…

在项目中集成Web端数据库操作:推荐工具一览

在项目中集成Web端数据库操作:推荐工具一览 博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍…

基于分块贝叶斯非局部均值优化(OBNLM)的图像去噪算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 块定义与相似度计算 ​4.2 贝叶斯框架下的加权融合 4.3 加权最小均方误差估计 5.完整程序 1.程序功能描述 基于分块贝叶斯非局部均值优化(OBNLM)的图像去噪算法matlab仿真&#xff0c…

CASS+arcgis实现图斑的分割

1、在CASS中将图形绘制好,待分割图形为闭合线,使用线段将其分割成很多块,如下: 2、保存文件。打开arcgisPro,加载dwg图形,如下: 效果如下: 3、分别将面和线导出,如下&…

FL Studio21.2.5中文版电子音乐制作的强大工具

在当今的数字音乐时代,电子音乐已经成为了全球音乐市场中不可或缺的一部分。越来越多的音乐爱好者开始尝试自己动手创作电子音乐,而FL Studio 21中文版正是为他们量身打造的一款强大工具。作为一个音频制作爱好者,我深知一个好的数字音频工作…

LeetCode热题100 Day1——双指针

双指针 移动零11. 盛最多水的容器 移动零 思路: 双指针i,j,j指针遍历数组,i指针存放非0元素。遍历结束后,i指针及其后面的一定是0,就再将空出来的位置设置为0 移动零 class Solution {public void moveZeroes(int[] …

PPT忘记保存?教你如何轻松恢复

在日常办公中PPT文件作为主流文档格式,承载着我们大量的工作成果。然而当不小心误点了“不保存”按钮,或是遭遇软件崩溃等意外情况导致文档丢失时,文件内容是否还能够能恢复,往往成为我们最关心的问题。本文将为您提供五大免费且实…

Centos安装nvm管理node版本(让安装变得可控又快捷)

Centos安装nvm管理node版本(让安装变得可控又快捷) 没有找到一个对的人,有可能是你没有走对那条路,也有可能是你没有睁开眼睛,而更大的可能是,你根本就没有出发去找。 安装说明 nvm安装目录:/us…

vue项目出现多次ElMessage

问题: 解决方法: let message null if (message null) { message ElMessage.error(“登录过期,请重新登录”); } 最终效果:只出现一个弹框

N进制计数器【02】

大容量N进制计数器 集成计数器容量的扩展 集成计数器级联扩展容量 【例1】由两片 74LS161 级联组成 256 进制(8位二进制)同步加法计数器 【解】级联时,外加时钟信号同时接到各片计数器的时钟输入端,用前级计数器的进位输出 C…