使用 Keil 新建 Arm Visual Hardware(AVH) 项目

news/2024/11/29 18:27:08/文章来源:https://www.cnblogs.com/Zheng-Bicheng/p/18577327

1 新建并配置项目

1.1 新建项目

我这里想模拟 Cortex-M55 核心,因此选择 SSE-300-MPS3

由于是简单教程,我只想输出一个最简单的 Hello World,因此仅勾选串口相关的组件

这里还需要特殊勾选一下以下选项

1.2 配置Target

Software Model 处选择 TrustZone disabled

Read/Write Memory Areas可以视情况也做对应的修改,我这里选择修改为和官方Demo一致的参数

1.3 配置Output

勾选 Create HEX File

1.4 配置C/C++(AC6)

Misc Controls 处添加 -Wno-padded -Wno-covered-switch-default

1.5 配置 Linker

取消勾选 Use Memory Layout from TargetDialog,并选择合适的 Scatter File,我这里选择使用官方给定的 sct 文件,这个文件路径一般为 ./RTE/Device/SSE-300-MPS3/linker_SSE300MPS3_secure.sct

1.6 配置Debug

接下来配置一下AVH模拟器路径,Use 处选择 Models ARMv8-M Debugger

点击 Settings 按钮进入配置

Commnad 处填写模拟器地址,一般需要先找到 Keil 安装目录,然后根据目录填写模拟器地址; Target 处填写 cpu0

2 编写代码

简单编写一个程序

#include <stdio.h>
#include "stdout_USART.h"#if defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
__asm("  .global __ARM_use_no_argv\n");
#endifint main(){stdout_init();printf("Hello World!\r\n");
}

3 执行编译并开始仿真

执行编译

开始仿真

4 处理错误

4.1 Error: L6218E: Undefined symbol wait_us (referred from device_definition.o).

执行第一次编译后会出现下图红色方框的错误,定位到错误点可以看到是和I2C有关的错误,应该是这个函数没有被定义。

解决方法为导入另外的三个工具包

这个错误应该是 Keil 自身的 Bug,我们压根没有引入 I2C,为什么要 define I2C0_SBCON_S 呢?

4.2 命令行没有输出

运行项目后可能会出现命令行没有输出的情况,这个问题一般是导入 STDOUT 模块的时候没有导入 Variant 等级为 UserSTDOUT 模块,请修改后再进行编译。

4.3 报错找不到Telnet

Windows 默认不自带 Telnet.exe,需要手动打开这个软件

5 参考资料

  • Telnet找不到时的安装(启动)教程 (Windows)_无法安装telnet客户端-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java面试之多线程并发篇(9)

前言 本来想着给自己放松一下,刷刷博客,突然被几道面试题难倒!引用类型有哪些?有什么区别?说说你对JMM内存模型的理解?为什么需要JMM?多线程有什么用?似乎有点模糊了,那就大概看一下面试题吧。好记性不如烂键盘 *** 12万字的java面试题整理 *** *** java核心面试知识整…

记录---前端如何优雅通知用户刷新页面?

🧑‍💻 写在开头 点赞 + 收藏 === 学会🤣🤣🤣前言 老板:新的需求不是上线了嘛,怎么用户看到的还是老的页面呀 窝囊废:让用户刷新一下页面,或者清一下缓存 老板:那我得告诉用户,刷新一下页面,或者清一下缓存,才能看到新的页面呀,感觉用户体验不好啊,不能直接…

一文多发小工具

一个一文多发的发布小工具 一个一文多发的发布小工具,作为练手的项目。 概述: 如果有将文章分享到多个平台的需求,可以借助程序来简化这一过程,节省时间并提高效率。 实现思路: 大多数平台支持markdown格式的文本内容,将.md文件作为入口文件读取,发布到各个平台;由于ma…

为 TVM 添加对 Paddle 量化模型的支持

1 简介 随着深度学习应用的广泛使用,量化模型作为一种有效的模型压缩技术,能够在保持模型精度的同时减少模型的计算和存储开销。本文将介绍如何在 TVM 上为 Paddle 深度学习框架中的量化模型提供解析支持。 2 量化方法 目前主流的的量化方法主要分为 QOperator 和 QDQ(Quanti…

tp6 url 规则

http://tp.cc/index.php/index/test return view( index, [info => $info, sj=>$sj] );

拥抱 OpenTelemetry:阿里云 Java Agent 演进实践

我们用了接近一年的时间完成了基于 OTel Java Agent 的升级重构,并于今年 5 月份发布了 4.x 探针的第一个版本 4.1.0,经过接近半年时间的验证、回归、优化,目前最新的稳定版本 4.1.12[11]已经正式发布,欢迎大家了解使用。作者:陈承 背景 在 2018 年的 2 月,ARMS Java Age…

BIM技术:数字孪生城区建设的加速器

在智慧城市建设的浪潮中,BIM(建筑信息模型)技术以其独特的优势,成为推动数字孪生城区建设的重要技术力量。本文将探讨BIM技术如何成为数字孪生城区建设的加速器,以及其在建设过程中的关键作用。BIM技术与数字孪生城区的融合数字孪生城区是指在数字空间构建一个与实体城市相…

ADF - [01] 概述

题记部分 001 || 简介Azure Data Factory (ADF) 是微软 Azure 云平台提供的一种数据集成服务,它允许用户创建、安排和管理数据管道,以实现从不同来源抽取数据、转换数据并加载到目标存储的过程。这个过程通常被称为 ETL(Extract, Transform, Load)。002 || 适用场景 【1】…

使用Powershell运行脚本报错的处理方法

最近在一台办公电脑上运行powershell脚本时报错如下: 系统上禁止运行脚本。有关详细信息,请参阅 https :/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。 所在位置 行:1 字符: 1 + .\CreateFolders.ps1 + ~~~~~~~~~~~~~~~~~~~ + CategoryInfo : S…

20222408 2021-2022-2 《网络与系统攻防技术》实验七实验报告

1.实验内容 1.1实验内容简述 (1)应用SET工具建立冒名网站。 (2)利用ettercap完成DNS欺骗攻击。 (3)结合应用两种技术,使被攻击者会通过域名访问到冒名网站。 (4)结合攻击过程,提出具体防范方法。 1.2学习内容简述 (1)学习SET工具和ettercap工具的使用。 (2)理解A…

Vulnhub sick0s1.1

0x01:端口扫描 主机发现 nmap -sn 192.168.231.0/24全端口扫描 nmap --min-rate 10000 -p- 192.168.231.14122ssh,3128squid-http,但8080http是关闭的Squid 是一个高性能的开源代理服务器软件,它支持多种协议,包括 HTTP、HTTPS、FTP 等。它通常用于以下几种用途: 1、Web代…

Gemini

Gemini: 大规模DNN芯片阵列加速器的布局和架构 摘要 chiplet概要目标Chiplet(芯片阵列)技术允许在单一加速器上集成不断增加的晶体管的数量,在前摩尔定律时代获得了更高的效果,体现了在快速AI迭代进步中需要的大量算力。 但是,这样也引进了更高昂的大包开销,以及大量的d2…