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

STM32f103ze外部Flash的常量和数组地址定义问题

[复制链接]
stm32liao 提问时间:2012-3-21 22:12 /
我要在外部FLASH中保存数据,在绝对地址定义上遇到难题,在常量上我用
#define  ABC  ((u32)0x740001)
#define  BCD  ((u32)0x740002)
#define  CDE  ((u32)0x740003)
#define  DEF  ((u32)0x740004) //以上编译仿真都通过,但这样定义不知对不对,
但在定义常量数组时就不知道怎样定义了,采用类似定义,
#define  AAA【15】  ((u32)0x740005)
编译有警告,仿真会进入死循环。
在C51中我是这样定义的
uchar xdata ABC _at_ 0x1000;
.
.
uchar xdata  AAA[15]  _at_  0x1000;
这个问题困扰我一个多月了,急于求解。
 
收藏 评论4 发布时间:2012-3-21 22:12

举报

4个回答
废鱼 回答时间:2012-3-22 11:21:07

RE:STM32f103ze外部Flash的常量和数组地址定义问题

定义数组不能这么定义,用const u32 AAA[15]
stm32liao 回答时间:2012-3-22 13:29:31

RE:STM32f103ze外部Flash的常量和数组地址定义问题

我也这么定义过,
const u32 AAA[15] __at (0x740008);
FSMC_NOR_WriteHalfWord(AAA[2] , 23334);//在此地址写入23334,仿真到这一步时进入死循环,如果我把地址0x740008改为0x740009,编译时就提示.\obj\aaa.axf: Error: L6984E: AT section lcd.o(.ARM.__AT_0x00740009) has required base address 0x00740009 which is not aligned to section alignment 0x00000004.我就不懂了,把类型改为u16也是不行,FLASH是16位的啊,我前面单个定义常量就采用的连续地址,具体该怎么定义呢
废鱼 回答时间:2012-3-22 15:37:31

RE:STM32f103ze外部Flash的常量和数组地址定义问题

不能放在奇数地址,只能仿真偶数地址。这个是FLASH本身决定的。FSMC_NOR_WriteHalfWord(AAA[2] , 23334);//你应该进入这个里面,看看死在什么地方了。也许是你的值内容不对。
stm32liao 回答时间:2012-3-22 16:47:32

RE:STM32f103ze外部Flash的常量和数组地址定义问题

仿真时进入死循环,单步仿真,运行到FSMC_NOR_WriteHalfWord(AAA[2] , 23334);
直接进入这里,
void HardFault_Handler(void)
{
/* Go to infinite loop when Hard Fault exception occurs */
while (1)
{
}
}也不知道哪里问题

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版