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

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即可下载文件。
在这里插入图片描述

4.4 板子例程使用

http://www.lryc.cn/news/470817.html

相关文章:

  • 华为原生鸿蒙操作系统的发布有何重大意义和影响:
  • API 接口:连接生活与商业的数字桥梁
  • IEC101 JAVA开发记录
  • 降压恒压150V供电 负载固定5V 持续0.6A电动车仪表供电芯片SL3150H
  • QT 从ttf文件中读取图标
  • JS动态调用变量
  • django restful API
  • 在xml 中 不等式 做转义处理的问题
  • python——文件存储与写入path
  • AI 提示词(Prompt)入门 :ChatGPT 4.0 高级功能指南
  • C++:模板
  • 假如浙江与福建合并为“浙福省”
  • AI图片生成3D物体和2D视频提取3D动画
  • Android 应用包名的定义 pm list packages查询的包名
  • 递归相关练习
  • 租房市场新动力:基于Spring Boot的管理系统
  • 基于Python的B站视频数据分析与可视化
  • 远程:HTTP基本身份验证失败。提供的密码或令牌不正确,或者您的账户启用了两步验证,您必须使用个人访问令牌而不是密码。
  • 聚合值和非聚合值比较【SQL】
  • Python 学习 DAY1
  • `Pendulum`: 掌握时间的艺术,让Python日期时间操作不再复杂
  • nginx------HTTP模块配置详解
  • 听见文本的魅力:AI 与未来的语音交互
  • Qt 窗口可见性 之 close函数和hide函数
  • git bisect和git blame
  • 【面试题】Node.JS篇
  • Leetcode11:盛水最多的容器
  • php如何对海量数据进行基数统计
  • git命令报错:fatal: not a git repository (or any of the parent directories): .git
  • 如何通过sip信令以及抓包文件分析媒体发到哪个地方