stm32h743采用40nm芯片制造工艺。根据查询相关公开信息显示,此工艺结合产品架构创新,使新系列产品运算性能大幅提升,将处理器内核性能发挥得淋漓尽致,在系统内部超高速传输数据,运行模式功耗低于280uA/MHz,待机功耗低于7uA。
stm32h743能用晶振是25MHz。单片机为STM32H743,晶振大小为25MHz。程序利用LTDC驱动RGB888接口的4.3寸高分辨率屏。
你好,方法是:在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自带1M左右的RAM,虽然已经很大了,但总有不够的时候。RAM不够用,长久之计当然是增加外部RAM。外部RAM也分两大类,第一类是DRAM,另一类是SRAM。
DRAM:动态随机存储器,以电容的电荷来表示数据(有电荷代表1,无电荷代表零)。因为是电容,会失电,所以要频繁的刷新以保存数据。SRAM:静态随机存储器,以锁存的形式存储数据,只要不掉电,数据就一直存在,不需要刷新来保持数据。