定义flash 类型问题

[复制链接]
1906|5
 楼主| 开发小妞 发表于 2013-1-9 09:04 | 显示全部楼层 |阅读模式

定义 flash char str[]="welcome";
#include "string.h"
void test()
{
    char l;
   l= strlen((unsigned char*)str);
}
l为什么==0?
jlass 发表于 2013-1-9 09:32 | 显示全部楼层
让我们这些硬件工程师看软件问题真是情何以堪啊。
估计就是代码问题,楼主发到CSDN上去吧。
huangxz 发表于 2013-1-9 16:07 | 显示全部楼层
本帖最后由 huangxz 于 2013-1-9 16:12 编辑

这就是哈佛结构带来的问题了,:lol
不过楼主,我猜你问的是AVR单片机的问题,你放在arm板块是不是不对啊
 楼主| 开发小妞 发表于 2013-1-10 11:28 | 显示全部楼层
楼上说的对,是用的avr单片机,看来放错了,谢谢,不过您能不能解释一下,或者告诉我应该怎么做啊?
huangxz 发表于 2013-1-10 12:13 | 显示全部楼层
因为在avr单片机中,flash类型的变量在flash中,而(unsigned char *)str 指向的sram空间,所以就出现了你说的情况
aguijie 发表于 2013-1-12 21:31 | 显示全部楼层
看看反汇编?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

3

帖子

0

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