使用Renesas Flash Programmer软件
烧录芯片程序
首先通过前面所述方式手动设置使芯片进入Boot模式。
然后打开Renesas Flash Programmer (RFP)软件新建Project并设置连接方式。
最后选择要烧录的程序文件并对芯片内部Flash进行烧录。
切换到Operation Settings下,勾选Operation Settings标签页下的“Erase”、“Program”和“Verify”,然后切换回Operation标签页选择二进制文件进行烧录。
烧录芯片程序:
第3章 初识寄存器
寄存器是什么
寄存器实际上与RAM、FLASH一样,也是芯片内部的一种存储器(Memory)。一般而言,RAM是程序运行的内存,FLASH则是用来保存程序本身。寄存器与RAM、FLASH等存储器的不同之处在于:寄存器除了保存了芯片的功能状态之外,还是配置和控制芯片的桥梁,我们可以通过寄存器配置和操作芯片的功能。
一般而言,我们在对MCU芯片进行编程时有两种编程方式,一种是寄存器编程,另外一种是固件库编程(或者说库函数编程)。那么,固件库又是什么东西?固件库说白了其实是通过寄存器编程之后的产物,它是对寄存器操作的一种封装,最终提供给开发者一套固定的函数API进行调用。
我们可以从以下两种角度来了解寄存器编程与固件库编程的区别。
从程序执行效率的角度来看:
一般而言,寄存器编程生成的程序执行效率高,而固件库编程生成的程序执行效率不如寄存器编程的。
然而从开发者的角度来看:
固件库编程使得开发者不必深入理解硬件层面的寄存器细节,在开发时只需要调用库函数以实现所需的功能,因此可以提高开发者的开发效率。
瑞萨RA芯片里面有什么
在知道有寄存器这个东西存在后,还需要通过瑞萨官方的芯片数据手册了解它里面有什么,知道了芯片内部的结构之后,也就知道如何通过寄存器对芯片进行编程了。所以我们先来看看RA系列芯片内部有些什么。
简单来讲,MCU芯片里面主要有两大部分,一是CPU内核,二是片上外设。以RA6M5芯片为例,RA6M5所采用的CPU内核是Cortex-M33(简称CM33)。该CPU内核由ARM公司设计,但其实ARM公司并不生产芯片,而是出售其芯片技术授权。芯片生产厂商,比如Renesas、ST、NXP、TI 等等,他们负责在CPU内核之外设计各个模块并生产整个芯片,这些内核之外的模块被称为“核外设备”或“片上外设”(Peripheral)。例如,RA6M5芯片内部的外设模块:I/O Ports(GPIO)、SCI(串口)、I2C、SPI等等,这些都叫做片上外设。
实际上,既然有“核外设备”,那必然也有“核内设备”,即:CPU内核(Cortex-M33)内部也是具有一定的设备模块的结构的。例如,CPU内部有NVIC(嵌套向量中断控制器)、FPU(浮点计算单元)等等。
如下图所示,展示了RA6M5芯片内部模块与资源:
上图中,我们可以看到有一个标着“Arm Cortex-M33”的方框,其所表示的便是CPU内核,其中包含的小方框(DSP、FPU、MPU、NVIC等)属于内核的设备。
除了“Arm Cortex-M33”的方框以外,还有很多个大方框,它们对片上的全部外设模块进行了一个分类,大方框当中的小方框表示的是外设模块,如下:
可以看到,芯片里面的外设模块有很多。其中部分外设模块是相对简单的,而部分则是非常复杂。本教程的大部分篇章都是在讲解这些外设模块,我们会由简入难,逐步的了解和使用它们。
CPU内核结构是复杂的,但是我们不需要细究。对于一般嵌入式开发来说,需要了解的CPU内核的模块其实很少,重要的只有NVIC、SysTick等,而我们会在后面进行详细介绍。
RA6M5芯片Cortex-M33 CPU内核结构如图所示:
如您在使用瑞萨MCU/MPU产品中有任何问题,可识别下方二维码或复制网址到浏览器中打开,进入瑞萨技术论坛寻找答案或获取在线技术支持。
https://community-ja.renesas.com/zh/forums-groups/mcu-mpu/
未完待续
推荐阅读
TrustZone介绍及用途与器件生命周期管理(DLM)——瑞萨RA系列FSP库开发实战指南连载(05)
RA芯片的Boot模式及使用Renesas Flash Programmer软件等——瑞萨RA系列FSP库开发实战指南(06)
使用 Renesas Flash Programmer 软件设置安全边界——瑞萨RA系列FSP库开发实战指南(07)