0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Pico 2 RP2350 独立开发:跳过 Pico SDK ,直接上手!

上海晶珩电子科技有限公司 2025-03-25 09:39 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Raspberry Pi 推出了搭载全新RP2350微控制器的Pico 2。

RP2350是一款有趣的微控制器单元(MCU)。它拥有两个核心,这两个核心中的一个或两个都可以配置为Arm Cortex-M33或Hazard3 RISC-V。但本文将忽略RISC-V功能。

f586cfa4-0919-11f0-9434-92fbcf53809c.jpg

Pico 2并非唯一一款搭载Cortex-M33微控制器的开发板,但我相信它是全球范围内最便宜且最容易购买的一款。然而,从编程的角度来看,与其他如STM32H5系列的Arm Cortex-M33 MCU相比,Pico 2有一个主要的不同点:RP2350拥有一个(固定的)启动ROM,这为其提供了额外的功能。这带来的影响是,RP2350会首先执行其启动ROM,而不是用户应用程序。此外,我认为为了支持RP2350的特性(如版本控制、A/B版本、安全启动、签名镜像),引入了块(以及分区表)的概念。分区表是可选的,但使用块是必须的。因此,虽然一个用C编写的简单裸机应用程序可以使用Arm GNU工具链进行编译(Pico SDK提供了RP2350 CMSIS支持),但它无法直接在RP2350上执行,因为它缺少描述镜像所需的(元数据)块。

在Pico SDK构建系统中,所需的块在和pico-sdk/src/rp2_common/pico_crt0/embedded_end_block.inc.S中定义。这些是包含一些ifdefs的汇编源文件,这些文件中定义的数据被放入一个名为.embedded_block的段中。然后,这个块根据pico-sdk/src/rp2_common/pico_crt0/rp2350中的链接器描述脚本嵌入到镜像中。

用户应用程序二进制文件的元数据所需的最小块在RP2350数据手册的第5.9.5节“最小可行镜像元数据”中进行了描述。这些元数据存储在一个名为IMAGE_DEF的块中,该块包含两个项目:PICOBIN_BLOCK_ITEM_1BS_IMAGE_TYPE和PICOBIN_BLOCK_ITEM_2BS_LAST。每个块都需要一个类型为LAST的项目作为最后一个项目,这意味着这个最小块实际上只包含一个有意义的项目(IMAGE_TYPE)。镜像类型项目包含以下关于镜像的信息:

镜像是可执行的(IMAGE_TYPE_EXE)

镜像在安全模式下运行(EXE_SECURITY_S)

镜像针对Arm架构(EXE_CPU_ARM)

镜像针对RP2350(EXE_CHIP_RP2350)

这个块长20字节,应该位于加载到闪存的二进制文件的前4KB内。这是启动ROM代码找到它的方式。

上述所有信息(EXE、ARM、RP2350)除了一个(SECURITY_S)之外都应该很明显,但你可能会问为什么它在安全模式下运行。原因是RP2350的安全扩展始终启用(不能像STM32 MCU那样禁用)。启动ROM在安全模式下运行,并正常跳转到用户应用程序,因此(至少最初)用户应用程序也应该在安全模式下运行。之后,用户应用程序可以根据需要配置安全性。

由于通常将向量表保存在闪存镜像的开头,并且向量表小于4KB,因此将这个20字节长的块放在向量表之后是有意义的。与Pico SDK构建系统类似,这个块可以很容易地在汇编源文件中创建,并使用链接器描述脚本链接到正确的位置。

我创建了一个非常简单的LED闪烁项目,没有使用Pico SDK构建系统。可以在GitHub上的rp2350-bare-metal-build找到该项目。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Pico
    +关注

    关注

    0

    文章

    185

    浏览量

    18349
  • SDK
    SDK
    +关注

    关注

    3

    文章

    1093

    浏览量

    51198
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Pico2-ICE FPGA开发板的应用示例

    FPGA 和 MCU 结合的开发板不多,而 Pico2‑ICE 则把小巧、灵活和易上手完美结合。搭载 RP2350 双核 RISC-V MCU + Lattice iCE40UP5K
    的头像 发表于 09-06 10:02 657次阅读
    <b class='flag-5'>Pico2</b>-ICE FPGA<b class='flag-5'>开发</b>板的应用示例

    在树莓派Pico上运用不同的并行化手段

    树莓派PicoRP2040微控制器驱动,其上搭载两个CPU核,这让它非常适合探索并行计算。本文通过真实的数字信号处理样例来说明从双核架构中提取最大价值的方法和考量。
    的头像 发表于 08-29 09:51 3525次阅读
    在树莓派<b class='flag-5'>Pico</b>上运用不同的并行化手段

    RP2354 上市!20000美元全新黑客挑战赛!

    树莓派的第二代微控制器RP2350即将迎来面世一周年。自去年8月以来,树莓派已经售出了超过50万块Pico2Pico2W开发板,而RP2350
    的头像 发表于 08-04 17:03 967次阅读
    <b class='flag-5'>RP</b>2354 上市!20000美元全新黑客挑战赛!

    rp2040编译不通过的原因?

    拉取最新的RTT master,按照readme.md的说明编译,出现图中的问题,使用的env版本1.5.2;应该是pico-sdk中的SConstruct没有正常运行,排查不到具体问题,特来求助。
    发表于 06-13 07:55

    用于教育的紫色雏菊 RP2350A STEAM 平台!

    的RaspberryPi公民科学项目”。此代码库是基于树莓派RP2350A微控制器的紫色雏菊平台的。这是一个开源平台,用于利用树莓派RP2350A微控制器开展公民科学实验。具有
    的头像 发表于 05-29 16:33 537次阅读
    用于教育的紫色雏菊 <b class='flag-5'>RP2350</b>A STEAM 平台!

    贸泽开售Raspberry Pi用于嵌入式和IIoT应用的RP2350微控制器

    RP2350 微控制器。RP2350建立在Raspberry PI RP2040的成功基础上,旨在以实惠的价格提供更高的性能和安全性,非常适合嵌入式计算和工业物联网应用。   Raspberry Pi
    发表于 05-27 14:50 1372次阅读

    用树莓派RP2350 DIY 桌面动态温湿度计

    桌面动态温湿度计本文介绍了DFrobotBeetleRP2350开发板结合DHT11模块、锂电池模块、随机眨眼动画,实现OLED显示的桌面动态温湿度计的项目设计。一、项目介绍本项目包括工作原理:ADC电压采集与电量转换工程调试:电量获取
    的头像 发表于 05-27 08:05 672次阅读
    用树莓派<b class='flag-5'>RP2350</b> DIY 桌面动态温湿度计

    树莓派RP2350 - 桌面动态温湿度计

    树莓派RP2350 - 桌面动态温湿度计 本文介绍了 DFRobot Beetle RP2350 开发板结合 DHT11 模块、锂电池模块、随机眨眼动画,实现 OLED 显示的桌面动态温湿度计的项目
    发表于 05-26 02:02

    树莓派 RP2350 实现步进电机精确控制

    树莓派 RP2350 实现步进电机精确控制 本文介绍了 树莓派 RP2350 开发板实现步进电机驱动的项目设计,主要包括旋转角度的精确控制、串口发送实现自定义角度旋转、OLED 显示旋转状态三部
    发表于 05-03 15:11

    Made with KiCad(九十八):USB-C 的 Raspberry PiCo 2

    “  project-piCo,用 Type-C 替代 Micro USB 的 Pico 2。 ” KiCon Asia 2024 将于 2024 年 11 月 15~16 日在深圳举行,报名已开启
    的头像 发表于 04-28 18:27 831次阅读
    Made with KiCad(九十八):USB-C 的 Raspberry <b class='flag-5'>PiCo</b> <b class='flag-5'>2</b>

    树莓派 Pico 2040 的“速度狂飙”:时钟速度几乎翻倍!

    树莓派Pico2040的“超能力”升级如果你手头有一个树莓派Pico2040,但总觉得它的性能还没完全发挥出来,那么恭喜你,现在机会来了!树莓派Pico2040的最新SDK更新,就像给
    的头像 发表于 03-25 09:25 923次阅读
    树莓派 <b class='flag-5'>Pico</b> 2040 的“速度狂飙”:时钟速度几乎翻倍!

    RP2350 现已上市!变体即将发布!

    去年夏天,树莓派推出了第二代微控制器平台RP2350,它建立在RP2040的成功基础上,旨在以类似的实惠价格提供更高性能。RP2350首次出现在树莓派售价5美元的RaspberryPiPico
    的头像 发表于 03-25 09:20 1067次阅读
    <b class='flag-5'>RP2350</b> 现已上市!变体即将发布!

    树莓派 Pico SDK 2.1.1 版本发布!

    RaspberryPiPicoSDK2.1.1最新版本现已发布,更新了多个内容。RaspberryPiRP2040获官方200MHz时钟支持自2021年RaspberryPiRP2040与Pico
    的头像 发表于 03-25 09:20 1342次阅读
    树莓派 <b class='flag-5'>Pico</b> <b class='flag-5'>SDK</b> 2.1.1 版本发布!

    RP2350RP2040全面对比

    常见价格来看,RP2350 作为较新推出的芯片,其搭载的树莓派 Pico 2 开发板售价为 5 美元 。这一价格对于一些追求高性能、新功能的开发
    的头像 发表于 02-07 19:19 4590次阅读

    RP2350 数据手册及深度了解功能性能特性和开源项目案例

    Raspberry Pi RP2350 是 Raspberry Pi 推出的新一代微控制器,它在上一代 RP2040的基础上进行了重大改进。本文将深入探讨 RP2350 的功能特性、与 RP
    的头像 发表于 12-27 15:10 9158次阅读
    <b class='flag-5'>RP2350</b> 数据手册及深度了解功能性能特性和开源项目案例