打印

请教51 内存 初始化

[复制链接]
2378|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
itelectron|  楼主 | 2010-3-18 13:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
itelectron|  楼主 | 2010-3-18 13:48 | 只看该作者
郁闷啊  就是初始化 不了

使用特权

评论回复
板凳
HWM| | 2010-3-18 13:57 | 只看该作者
你把“寄存器”都扰乱了,把RAM_START (0x01)后移。

其实根本不用费此心,启动程序中早已经初始化好了。

使用特权

评论回复
地板
itelectron|  楼主 | 2010-3-18 14:03 | 只看该作者
#define        RAM_START        (*(( unsigned char *)0x20)) //内存起始地址
还是不行:L

Memory_Memset(&RAM_START, 0xFF, 0x7F);                //内存初始化

使用特权

评论回复
5
itelectron|  楼主 | 2010-3-18 14:05 | 只看该作者
void Memory_Memset(unsigned char idata *pRam, unsigned char mChar, unsigned char mLen)
{
  while (mLen--)
  {
    *(pRam++)=mChar;
        P1=        pRam;
        P2=        *pRam;
  }
}

使用特权

评论回复
6
itelectron|  楼主 | 2010-3-18 14:07 | 只看该作者
你把“寄存器”都扰乱了,把RAM_START (0x01)后移。

其实根本不用费此心,启动程序中早已经初始化好了。
HWM 发表于 2010-3-18 13:57


我只是用KEIL  调试下看看

使用特权

评论回复
7
itelectron|  楼主 | 2010-3-18 14:08 | 只看该作者
前面 忘了 已经用了一些  变量  不能从0x00开始

使用特权

评论回复
8
HWM| | 2010-3-18 14:18 | 只看该作者
注意填数的范围,别碰到其他已用单元(如寄存器组,变量,栈等);

使用特权

评论回复
9
假程序匠人| | 2010-3-18 16:27 | 只看该作者
你死定了,哈哈,有这样做的吗!

使用特权

评论回复
10
itelectron|  楼主 | 2010-3-18 17:02 | 只看该作者
TO 9 楼 肯定有 啊

要是做一些 功率 器件的控制

然后看门够REST  那么就要清RAM

使用特权

评论回复
11
HWM| | 2010-3-18 17:11 | 只看该作者
to 10 楼:

建议别这样做。watch-dog复位时通常还是从系统复位点开始执行的,因此和上电复位一样无需考虑清RAM操作。

使用特权

评论回复
12
abcejs| | 2010-3-18 17:45 | 只看该作者
是51单片机的内存吗??

使用特权

评论回复
13
maomao2126| | 2010-3-18 21:09 | 只看该作者
没看明白第一个参数unsigned char idata *pRam 中idata是什么东西?

使用特权

评论回复
14
itelectron|  楼主 | 2010-3-18 21:47 | 只看该作者
反正偶 用51是不会去清RAM  的、
只是用了DSP 后  突然想在 51上 试下看

使用特权

评论回复
15
原野之狼| | 2010-3-19 08:34 | 只看该作者
1 看门狗复位等同于上电复位 不需要再清内存
2 楼主这样的做法 得避开寄存器区 变量区 堆栈区
3 函数没有做参数检查 很容易误伤

使用特权

评论回复
16
itelectron|  楼主 | 2010-3-19 23:29 | 只看该作者
谢谢 楼上 各位

貌似 看到个 山寨 圈圈  12楼

使用特权

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

本版积分规则

个人签名:MARK: zhi kan ji shu

274

主题

2762

帖子

8

粉丝