打印

究根问底:为何STM32在3.x的库中把NVIC_DeInit删除()

[复制链接]
6041|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sedatefire|  楼主 | 2012-7-24 18:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 sedatefire 于 2012-7-24 18:21 编辑

在ST里面发了这个贴,应着聊聊,还是来这里吧
大虾出没的地方,给个高分吧
原帖传送门:https://bbs.21ic.com/icview-357356-1-1.html

/********************************************************/
另外,顺便问一下
STM32F103xx 的寄存器0x1FFFF7E2读不到ram的容量信息了,读到的值为为0xFFFF

0x1FFFF7E0  flash的容量还可以读到
0x1FFFF7E8 mcuID也还可以读到
为何要取消呢?
还是我的ic有问题?
最新datasheet有说明吗?

相关帖子

沙发
sedatefire|  楼主 | 2012-7-24 18:16 | 只看该作者
为何呢,st方面库的维护工程师是如何考虑的呢?
难道这个函数没人用吗,还是给维护带来困扰啊
虽然自己也可以实现,但总觉得心里一个疙瘩,难受
库一升级,就多了这些编译错误,ST方面有必要反省一下

缘起:
我做了一个引导程序进行应用程序更新
从应用程序跳过去后,需要关闭并且复位所有的中断
__disable_irq()并不适合

求解:.....

使用特权

评论回复
板凳
sedatefire|  楼主 | 2012-7-24 18:17 | 只看该作者
解决方法也是有的,这是别人的帖子,只是不解而已
地址http://www.amobbs.com/thread-4671122-1-1.html

原来在2.X库中有 NVIC_DeInit() 函数,我在3.X库中没有找到

我看2.X库中的源程序是这样实现的:
void NVIC_DeInit(void)
{
  u32 index = 0;
  
  NVIC->Disable[0] = 0xFFFFFFFF;
  NVIC->Disable[1] = 0x000007FF;
  NVIC->Clear[0] = 0xFFFFFFFF;
  NVIC->Clear[1] = 0x000007FF;
  
  for(index = 0; index < 0x0B; index++)
  {
     NVIC->;Priority[index] = 0x00000000;
  }
}

3.X库的core_cm3.h中,NVIC_Type结构体和2.X库中的不太一样,我对比着看,这样可以实现吗?
<font color="#2B91AF">void NVIC_DeInit(void)
{
  u32 index = 0;
  
  NVIC->ICER[0] = 0xFFFFFFFF;
  NVIC->ICER[1] = 0x000007FF;
  NVIC->ICPR[0] = 0xFFFFFFFF;
  NVIC->ICPR[1] = 0x000007FF;
  
  for(index = 0; index < 0x0B; index++)
  {
     NVIC->IP[index] = 0x00000000<font color="#000000">;
  }
}

使用特权

评论回复
地板
sedatefire|  楼主 | 2012-7-24 18:18 | 只看该作者
:lol如何用cmsis的库,来完整实现NVIC_DeInit的功能,谁能回答,即刻结贴给分

使用特权

评论回复
5
sedatefire|  楼主 | 2012-7-25 15:40 | 只看该作者
额,42个查看者,一个回帖都没有
连灌水都没
二姨家的人,果然有风骨啊

使用特权

评论回复
6
tao0127| | 2012-7-25 16:54 | 只看该作者
本帖最后由 tao0127 于 2012-7-25 17:00 编辑

兄弟,我入手STM32F103的板子有一年多了,一直没学,最近才拿出来用,所以这些问题我还不知道怎么回答。对于那些库,我都不用的,自己建个头文件,看官方的寄存器,直接位操作,管TMD库,刚成功点亮一个灯而已。那些库都是些JB鸟人写出来的,参考就可以,要用的话,等于扼杀自己的风格。

使用特权

评论回复
7
sedatefire|  楼主 | 2012-7-26 14:49 | 只看该作者
我的习惯是,尽量多的去调用库,毕竟那个东西,是成千上万个客户在验证的
除非逼不得已,要压缩代码或者提高效率时,才去修改部分文档。
我只是期望,库更新的时候,可以直接覆盖,编译通过即可

使用特权

评论回复
8
研发之声| | 2012-7-26 14:54 | 只看该作者
我的习惯是,尽量多的去调用库,毕竟那个东西,是成千上万个客户在验证的
除非逼不得已,要压缩代码或者提高效率时,才去修改部分文档。
我只是期望,库更新的时候,可以直接覆盖,编译通过即可 ...
sedatefire 发表于 2012-7-26 14:49

这是比较稳妥的做法

使用特权

评论回复
9
研发之声| | 2012-7-26 14:54 | 只看该作者
超过一百分啦

使用特权

评论回复
10
sedatefire|  楼主 | 2012-7-27 10:27 | 只看该作者
好吧,结案吧,自己的事情,自己摸索总结,体会比较深刻些...

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4393

主题

5935

帖子

33

粉丝