你好,方法是:在ld链接文件分配一个用户段(section),段的名字是_D1_Area,段的地址是>RAM_D1,4个字节对齐。
在ld链接文件分配一个用户段(section),段的名字是_D1_Area,段的地址是>RAM_D1,4个字节对齐。
进入DEBUG模式,进一步检查变量的内存地址。进入DEBUG模式后,需要点击“暂停”按钮才能显示变量的信息。从图片看到,数组D1_array的地址是0x24000000,属于RAM_D1的地址范围。
在实际项目中,充分发挥STM32H7的性能,必须将频繁存取的数据存放在DTCM内存。TCM:Tightly-Coupled Memory 紧密耦合内存,特点是跟内核速度一样(480M)。但是,其他内存(SRAM1,AXI SRAM,SRAM2,SRAM3等)跟CPU的通讯速度只有200M,CPU需要白白等待一段时间,才能把数据读取出来或者将数据存放进去。为了提高CPU与其他内存的通讯效率,Cortex-M7有了Cache(高速缓冲区,与CPU通讯速度400M)。但是,使用Cache并不是一件简单的事情,需要深入了解Cache的工作原理才能使用,这个笔记不讨论如何使用Cache。想了解Cache的使用,建议学习《安富莱_STM32-V7开发板_用户手册,含BSP驱动包设计(V3.2)》的第23章与第24章节。
STM32H743 将中断分为 5 个组,组 0~4。
该分组的设置是由 SCB->AIRCR 寄存器的 bit10~8 来定义的。具体的分配关系下表所示:
组 AIRCR[10:8] bit[7:4]分配情况 分配结果。
0 111 0:4 0 位抢占优先级,4 位响应优先级。
1 110 1:3 1 位抢占优先级,3 位响应优先级。
2 101 2:2 2 位抢占优先级,2 位响应优先级。
3 100 3:1 3 位抢占优先级,1 位响应优先级。
4 011 4:0 4 位抢占优先级,0 位响应优先级。
通过这个表,我们就可以清楚的看到组 0~4 对应的配置关系。
例如组设置为 3,那么此时所有的 108 个中断,每个中断的中断优先寄存器的高四位中的最高 3 位是抢占优先级,低 1 位是响应优先级。每个中断,你可以设置抢占优先级为 0~7,响应优先级为 1 或 0。抢占优先级的级别高于响应优先级。而数值越小所代表的优先级就越高。
这里需要注意两点:
1> 如果两个中断的抢占优先级和响应优先级都是一样的话,则看哪个中断先发生就先执行;
2> 高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。而抢占优先级相同的中断,高优先级的响应优先级不可以打断低响应优先级的中断。
结合实例说明:
假定设置——中断优先级组为 2。
中断 3(RTC_WKUP 中断)的抢占优先级为 2,响应优先级为 1。
中断 6(外部中断 0)的抢占优先级为 3,响应优先级为 0。
中断 7(外部中断 1)的抢占优先级为 2,响应优先级为 0。
那么这 3 个中断的优先级顺序为:中断 7>中断 3>中断 6。
上面例子中的中断 3 和中断 7 都可以打断中断 6 的中断。而中断 7 和中断 3 却不可以相互打断!
接下来我们介绍如何使用 HAL库实现以上中断分组设置以及中断优先级管理,使中断配置简单化。NVIC 中断管理相关函数主要在 HAL 库关键文件 stm32h7xx_hal_cortex.c 中定义。
stm32h743能用晶振是25MHz。单片机为STM32H743,晶振大小为25MHz。程序利用LTDC驱动RGB888接口的4.3寸高分辨率屏。
stm32h743采用40nm芯片制造工艺。根据查询相关公开信息显示,此工艺结合产品架构创新,使新系列产品运算性能大幅提升,将处理器内核性能发挥得淋漓尽致,在系统内部超高速传输数据,运行模式功耗低于280uA/MHz,待机功耗低于7uA。
openmv的硬件电路由OpenMV-H7和 STM32H743两个硬件电路组成。我来具体介绍这两个硬件电路。
OpenMV-H7
OpenMV-H7是低功耗的Python3可编程机器视觉硬件,结合摄像头可以支持一系列广泛的图像处理功能和神经网络。OpenMV-H7使用跨平台 IDE 进行编程,该 IDE 允许查看摄像机的帧缓冲器、访问传感器控件、通过 USB 串行(或 WiFi/BLE(如果可用)将脚本上传到摄像机。OpenMV-H7 基板基于在 400MHz 下运行的STM32H743 MCU,具有 1MB SRAM、2MB 闪存、FPU、DSP 和硬件 JPEG 编码器。基板采用模块化传感器设计,将传感器与摄像机分离。模块化传感器设计使摄像机能够支持多个传感器,包括 OV7725、MT9V03x 全球快门传感器和 FLIR Lepton 1、2 和 3 热传感器。OpenMV-H7可以应用在多个领域比如:智能家居,机器人导航,物体检测与追踪等工业应用。
STM32H743
STM32H743是OpenMV-H7基板的MCU,其是一款32位的,Cortex-M7内核的芯片,该内核具有双精度浮点处理单元FPU,最高频率达到400MHz,并且内置1M RAM, 2M Flash。图2所示是STM32H743芯片的架构。