当前位置: 首页 > article >正文

ARM学习(33)英飞凌(infineon)PSOC 6 板子学习

在这里插入图片描述

笔者来聊一下psoc62 系列板子的知识

1、PSOC62板子介绍

Psoc6-evaluationkit-062S2 与RT-Thread联合推出的一款32位的双core的板子,基于CortexM4以及CortexM0。

  • 管脚兼容Arduio。
  • 板载DAP-Link,可以支持调试以及串口,无需外接
  • 2MB的Flash以及1MB的RAM空间。
  • 板子可外接mrcro SD卡,可操作出名滑条,可外扩WIFI以及蓝牙。
    在这里插入图片描述

2、PSOC62 CPU特点

双core MCU,CortexM4以及CortexM0

  • CortexM4 频率:150MHZ,CortexM0 :100MHZ
  • 8KB的指令Cache
  • CortexM4基于ARMv7-M架构,支持Thumb-2指令集,CortexM0基于ARMv6-M指令集,支持Thumb指令集
  • 均支持中断嵌套NVIC
  • 均支持debug port,SWD以及JTAG
  • 双core IPC(硬件)通信
  • 均有自己的数据总线和内存接口
    整体架构如下图所示:
    在这里插入图片描述
  • 支持深度睡眠,休眠唤醒模式
  • 支持MPU,内存保护
  • 支持对称加密加密,DES,AES,以及非对称加密,RSA/ECC
  • 2MB 的Flash以及1MB的RAM空间
  • 64KB的ROM空间。

因为其使用的均是ARM CortexM架构,所以其寄存器包括指令集均安装ARM架构的理解即可。寄存器的了解可以看这篇文章:ARM学习(2) 寄存器的理解 ===》通用寄存器及状态寄存器,指令集可以参考这篇文章:ARM学习(6) 指令集学习。

3、PSOC62 内存布局

其整体内存布局如下图所述:双core均有固定的内存布局,包括外设,大小为4G。
在这里插入图片描述
PSOC6的内存布局如下图所述:双core看的内存布局一致。
在这里插入图片描述
这里与一张图不一样的,SRAM放到了规划的code区域,因为PSOC6就没有使用0x20000000的区域。

通过看到以内内存布局之后,笔者还查看了芯片的链接脚本,通用可以来确定其内存使用分布。

; The following defines control RAM and flash memory allocation for the CM4 core.
; You can change the memory allocation by editing RAM and Flash defines.
; Note that 2 KB of RAM (at the end of the SRAM) are reserved for system use.
; Using this memory region for other purposes will lead to unexpected behavior.
; Your changes must be aligned with the corresponding defines for CM0+ core in 'xx_cm0plus.scat',
; where 'xx' is the device group; for example, 'cy8c6xx7_cm0plus.scat'.
; RAM
#define RAM_START               0x08002000
#define RAM_SIZE                0x000FD800
; Flash
#define FLASH_START             0x10000000
#define FLASH_SIZE              0x00200000

; The size of the stack section at the end of CM4 SRAM
#define STACK_SIZE              0x00001000

; By default, the COMPONENT_CM0P_SLEEP prebuilt image is used for the CM0p core.
; More about CM0+ prebuilt images, see here:
; https://github.com/Infineon/psoc6cm0p
; The size of the Cortex-M0+ application flash image
#define FLASH_CM0P_SIZE         0x2000

观察上图,

  • SRAM的布局从0x08002000开始,其实前面的0x2000是放CPU0的Image的,与NXP的启动方式类似,一个core启动之后,把另外一个core加载到对应的SRAM空间上面去运行。具体的可以参考这篇文章:ARM学习(28)NXP 双coreMCU IMX1160学习。
  • Flash的大小没什么好说的,就如上面所示,是2MB
  • 栈的大小这边设了4KB。

4、PSOC62 上手使用

psoc32支持多种平台下载使用,RT-Thread Stduio,MDK以及infineon自身的IDEModusToolbox。

4.1 RT-Thread Stduio下载使用

新建好项目以及选择好目标板子后,可以直接编译和下载。
编译界面
在这里插入图片描述
下载界面
在这里插入图片描述
在这里插入图片描述

4.2 MDK下载使用

直接采用RTT-Thread生成的MDK工程就可以编译和下载,主要注意的是,MDK5的工程生成时,可能有格式问题,需要用scons重新生成一下。
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

4.3 ModusToolbox下载使用

使用ModusToolbox Programmer,可以来下载代码,类似于JFlash一样。
连接界面:注意选择正确的device,这边是CY8C624ALQI-S2D42系列。
在这里插入图片描述
下载界面:选择好下载文件,然后电机Program即可下载文件。
在这里插入图片描述


http://www.kler.cn/news/364725.html

相关文章:

  • el-date-picker时间范围搜索条件,watch监听
  • VSCode编译器改为中文
  • TCP全连接队列与 tcpdump 抓包
  • U9的插件开发之BE插件(1)
  • 【数据结构与算法】之队列详解
  • 【python】sorted() list.sort()
  • 回归、分类模型的评估指标
  • G1(Garbage First)垃圾回收实战
  • 木木模拟器 MuMuPlayer Pro for Mac 下载安装详细教程(无需激活)
  • 人工智能_机器学习100_PCA数据降维算法_协方差和散度矩阵_深入理解_分析_协方差和散度矩阵计算过程---人工智能工作笔记0225
  • Kubernetes集群搭建容器云需要几台服务器?
  • 两个mp3音频怎么合成一个?音频合成的多个好用方法教程
  • python+大数据+基于热门视频的数据分析研究【内含源码+文档+部署教程】
  • 小程序云数据库通用操作
  • MySQL的group_concat函数:将分组中的多个值连接成一个字符串的聚合函数
  • Java安全——AES(对称加密)和 RSA(非对称加密)的实现
  • Failed to fetch dynamically imported module
  • react18中的jsx 底层渲染机制相关原理
  • 基于SpringBoot的“高校校园点餐系统”的设计与实现(源码+数据库+文档+PPT)
  • 任务间通信(1)
  • 使用GDAL库的ogr2ogr将GeoJSON数据导入到PostgreSql中
  • 分布式ID多种生成方式
  • 用docker Desktop 下载使用thingsboard/tb-gateway
  • Docker快速安装Grafana
  • Ubuntu清理空间
  • Vite 前端开发的超级加速器 - 从入门到精通