搜索

[STM32F7] CubeMX里关于Cortex-M7的设置问题

[复制链接]
2061|7
 楼主 | 2017-7-6 13:29 | 显示全部楼层 |阅读模式
本帖最后由 sonicll 于 2017-7-6 13:55 编辑

STM32F7使用CubeMX生产代码时,可以在Cortex-M7设置里选择是否开启ART ACCLERATOR,ICache,DCache等,如下图

art.jpg

其中ICache,DCache,开启和关闭,能够在生成的代码里看到有两条语句

SCB_EnableICache();
SCB_EnableDCache();

但是ART ACCLERATOR的开启和关闭,还有FLASH Interface选择TCM还是AXI,在生成的代码里似乎看不到有什么变化,也许是我没找到,有没有人能给我指出对应的代码在哪里?



 楼主 | 2017-7-6 13:51 | 显示全部楼层
ART ACCLERATOR的开启和关闭代码我找到了,在HAL_Init()里:

#if (ART_ACCLERATOR_ENABLE != 0)
   __HAL_FLASH_ART_ENABLE();

但是FLASH Interface选择TCM还是AXI,这部分的代码还是没找到

使用特权

评论回复
| 2017-7-6 14:12 | 显示全部楼层
没用过STM32CubeM生成,但是我拿STM32Cube例程来测试的。首先ART ACCLERATOR的开启和关闭是在HAL_Init()中有的,TCM和AXI好像是自己配置的,Keil中有选项可以进行ROM加载地址设置的,默认是AXI。从TCM接口启动的话,我需要修改加载镜像地址,看图二和图三。
我拿公司的STM32F767 Nucleo板子试了下,从TCM启动,似乎成功了,看最后一张图的R15(PC),嘿嘿。
QQ图片20170706133834.png
QQ图片20170706140243.png
QQ图片20170706140224.png
QQ图片20170706140339.png

使用特权

评论回复

评分

参与人数 1威望 +3 收起 理由
sonicll + 3 很给力!
 楼主 | 2017-7-6 14:24 | 显示全部楼层
huotou 发表于 2017-7-6 14:12
没用过STM32CubeM生成,但是我拿STM32Cube例程来测试的。首先ART ACCLERATOR的开启和关闭是在HAL_Init() ...

十分感谢,keil里确实可以手动设置TCM Flash地址。这么看来CubeMX里的FLASH Interface选项似乎就没起作用,还要自己手动修改

使用特权

评论回复
| 2017-7-6 15:20 | 显示全部楼层
sonicll 发表于 2017-7-6 14:24
十分感谢,keil里确实可以手动设置TCM Flash地址。这么看来CubeMX里的FLASH Interface选项似乎就没起作用 ...

不清楚,没用过,也是刚用STM32F7系列,嘿嘿

使用特权

评论回复
| 2017-7-6 17:45 | 显示全部楼层
用STM32CubeMX生成了下,它在Keil里已经自动已经更改为TCM地址启动了
test.PNG

使用特权

评论回复
 楼主 | 2017-7-10 16:59 | 显示全部楼层
huotou 发表于 2017-7-6 17:45
用STM32CubeMX生成了下,它在Keil里已经自动已经更改为TCM地址启动了 ...

可能是我的CubeMX版本问题,更新了版本以后确实在Keil里自动更改TCM地址了,但是我还是有个问题,就是在SystemInit()里面设置向量表地址的语句:
SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET;
即使设置FLASH为TCM,FLASH_BASE的地址仍然是AXI的地址:

#define FLASHITCM_BASE         0x00200000U /*!< Base address of : (up to 2 MB) embedded FLASH memory  accessible over ITCM              */
#define FLASHAXI_BASE          0x08000000U /*!< Base address of : (up to 2 MB) embedded FLASH memory accessible over AXI                */
#define FLASH_BASE     FLASHAXI_BASE
这个地方不修改为FLASHITCM_BASE能正常运行吗?         

使用特权

评论回复
| 2017-7-11 09:51 | 显示全部楼层
sonicll 发表于 2017-7-10 16:59
可能是我的CubeMX版本问题,更新了版本以后确实在Keil里自动更改TCM地址了,但是我还是有个问题,就是在S ...

好像不改还是从Keil选中的TCM地址处启动的,但是SCB->VTOR 是0x08000000,还没找到好的文档来解释,如果找到,请分享下

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表