5147|10

63

帖子

0

TA的资源

一粒金砂(初级)

我有个问题关于FWlib的~ [复制链接]

在map.h文件中

根据是否是debug模式对于某一个外设的基址有两种设置法,以GPIOA为例:


#ifndef debug

#ifdef _GPIOA
 #define GPIOA     (GPIO_TypeDef *)GPIOA_BASE
#endif

#else

#ifdef _GPIOA
 EXT GPIO_TypeDef *GPIOA;
#endif

#endif

普通模式下定义了常量宏GPIOA为外设基址.且可以按结构体访问(已强制转换)

而debug模式下,为何要定义一个变量? 这个变量在debug_init中初始化为了
GPIOA_BASE..效果不是一样吗?? 据文档中说是为了调试的目的..

请教: )




此帖出自stm32/stm8论坛

最新回复

                                 我的意思是.如果完全没有必要让外部知道的东西就应该隐藏起来..   详情 回复 发表于 2008-6-20 23:46

回复
举报

77

帖子

0

TA的资源

一粒金砂(初级)

什么芯片?

                                 哪个固件库中都没有 map.h 这样的文件啊?
此帖出自stm32/stm8论坛

回复

75

帖子

0

TA的资源

一粒金砂(初级)

这~

...........
楼主你有没有看过Fwlib阿..
 " stm32f10x_map.h "
说map.h应该很清楚吧.就是存储地址封装的头文件
此帖出自stm32/stm8论坛

回复

89

帖子

0

TA的资源

一粒金砂(初级)

哈哈,我是直接拷贝模板使用,从不管什么文件的名字

你说这个文件名,我却找不到,当然要问了。


言归正传,这个问题很简单,调试时如果想在watch窗口中查看GPIOA所有寄存器的值,当然要有一个变量才能看了,否则如何引用GPIOA_BASE这个常量?
此帖出自stm32/stm8论坛

回复

64

帖子

0

TA的资源

一粒金砂(初级)

Re

只指是一个结构体基址指针变量而已..他永远都是指向外设的首地址.
您把他拉到watch里面去,看到的不永远是GPIOA_BASE吗?

另外如果想看GPIOA每个寄存器的值,应该可以通过IAR下面的寄存器看吧.
AT91的就行.再不行的话,观察memory也可以阿..
此帖出自stm32/stm8论坛

回复

74

帖子

0

TA的资源

一粒金砂(初级)

楼上可以试试把*GPIOA拉到Watch窗口看看是什么效果

                                 至少IDE要求这样。
此帖出自stm32/stm8论坛

回复

78

帖子

0

TA的资源

一粒金砂(初级)

Re

MDK中把GPIOA拉到WATCH中..

他下面出现了*GPIOA,好象确实能看到.

明天用IAR试试..现在白天是IAR+JLINK,晚上是MDK+ULINK.晕菜了
此帖出自stm32/stm8论坛

回复

59

帖子

0

TA的资源

一粒金砂(初级)

回复香主

用IAR4.42无论是不是编译为debug模式.

将GPIOA放入watch中都能观察到GPIOA的各个寄存器.

不过在IAR里用观察寄存器的功能更好,可以为用户分解每个bit的状态.
此帖出自stm32/stm8论坛

回复

81

帖子

0

TA的资源

一粒金砂(初级)

问另外一个问题.

对于每个模块的输入参数检查宏
assert_param(..)中的IS_PARA_XXX

为何要定义在每个模块的.h中?

这部分宏定义需要给别的模块用吗?貌似只要在.c内部定义就可以了
private marco部分 ..
此帖出自stm32/stm8论坛

回复

61

帖子

0

TA的资源

一粒金砂(初级)

有什么不妥吗?

                                 如果做一件事情可以有多种方式,用哪一种方式没有关系呀,个人喜好。
此帖出自stm32/stm8论坛

回复

70

帖子

0

TA的资源

一粒金砂(初级)

re

                                 我的意思是.如果完全没有必要让外部知道的东西就应该隐藏起来..
此帖出自stm32/stm8论坛

回复
您需要登录后才可以回帖 登录 | 注册

猜你喜欢
随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表