你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32L4在Keil下警告

[复制链接]
wy1000 提问时间:2015-12-21 15:09 /
STM32L4系列使用arm_fir_f32时在keil5.16下连接警告,"Warning: L6989W:Could not apply patch sdcomp-...",该如何处理?
收藏 评论4 发布时间:2015-12-21 15:09

举报

4个回答
若1989 回答时间:2017-12-7 18:04:28
顶一下,同样遇到这样的问题,请问是怎么解决的?
Ethan12345 回答时间:2018-3-28 15:42:35
CAUSE
Some members of the STM32L4 family have an eratta for the FMC (Flexible Memory Controller) where a read burst access of 9 words or more is not supported by FMC. To prevent burst accesses that are greater than 8 words, a special linker patch was developed to patch certain instructions that result in burst accesses of greater than 8 words. The patch can be applied in most cases with a few exceptions. One of these exceptions is when the instruction to be patched is inside an IT (If-Then) block and is not the last instruction in that block. In this case this warning will be generated.
RESOLUTION
Since the FMC is only used for external memory, you can ignore this warning if you are only using internal memory. If you are using external memory, make sure your stack is located on-chip. In compiled code, the use of IT blocks can be eliminated by using the --no_conditionalize compiler option. If you are using the DSP library, you will need to rebuild it with the --no_conditionalize compiler option to prevent this warning.This can increase the processing time for DSP functions, so this should only be done for the library used with the STM32L4xx. Also, some math functions such as log10() contain IT blocks that cannot be patched. Since these math functions are not available to be re-built, it may be difficult to eliminate the warning in all cases. In the case of log10(), you can use a similar function, log10f() that does not have the IT block restriction.

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

无薪税绵 回答时间:2018-3-28 16:28:50
由于FMC仅用于外部存储器,因此如果仅使用内部存储器,则可以忽略此警告。
如果您使用外部存储器,请确保您的堆栈位于芯片上。

在编译代码中,可以通过使用--no_conditionalize编译器选项来消除IT块的使用。
如果您正在使用DSP库,则需要使用--no_conditionalize编译器选项重新构建它以防止出现此警告。
这可能会增加DSP功能的处理时间,因此只能针对与STM32L4xx一起使用的库完成此操作。

此外,一些数学函数(如log10()包含无法修补的IT块。
由于这些数学函数不可重新构建,所以在所有情况下可能很难消除警告。
对于log10(),您可以使用类似的函数log10f(),该函数不具有IT块限制。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

stm1024 回答时间:2018-3-28 18:12:48
帮你查了一下,哈哈
CAUSE
Some members of the STM32L4 family have an eratta for the FMC (Flexible Memory Controller) where a read burst access of 9 words or more is not supported by FMC. To prevent burst accesses that are greater than 8 words, a special linker patch was developed to patch certain instructions that result in burst accesses of greater than 8 words. The patch can be applied in most cases with a few exceptions. One of these exceptions is when the instruction to be patched is inside an IT (If-Then) block and is not the last instruction in that block. In this case this warning will be generated.

RESOLUTION
Since the FMC is only used for external memory, you can ignore this warning if you are only using internal memory. If you are using external memory, make sure your stack is located on-chip. In compiled code, the use of IT blocks can be eliminated by using the --no_conditionalize compiler option. If you are using the DSP library, you will need to rebuild it with the --no_conditionalize compiler option to prevent this warning.This can increase the processing time for DSP functions, so this should only be done for the library used with the STM32L4xx. Also, some math functions such as log10() contain IT blocks that cannot be patched. Since these math functions are not available to be re-built, it may be difficult to eliminate the warning in all cases. In the case of log10(), you can use a similar function, log10f() that does not have the IT block restriction.

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版