查看: 3662|回复: 3

[其他] EEPROM在BDM和单片机模式写入的不同?

[复制链接]

该用户从未签到

10

主题

42

帖子

0

新手上路

Rank: 1

积分
115
最后登录
1970-1-1
发表于 2011-3-3 15:20:29 | 显示全部楼层 |阅读模式
EEPROM在BDM状态可以写入,并且断电单片机模式时也读到BDM时写入值。
但如果没在BDM状态写入EEPROM,那就只能读到0XFF既擦除模式!
这是啥原因?
我知道答案 目前已有2人回答
回复

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2011-3-4 13:56:55 | 显示全部楼层

    RE:EEPROM在BDM和单片机模式写入的不同?

    可能是系统时钟配置错误,BDM可以为你配置时钟。
    该会员没有填写今日想说内容.

    该用户从未签到

    10

    主题

    42

    帖子

    0

    新手上路

    Rank: 1

    积分
    115
    最后登录
    1970-1-1
     楼主| 发表于 2011-3-8 11:48:37 | 显示全部楼层

    RE:EEPROM在BDM和单片机模式写入的不同?

    安老大,帮我看下程序!
    到底哪里出错了

    该用户从未签到

    10

    主题

    42

    帖子

    0

    新手上路

    Rank: 1

    积分
    115
    最后登录
    1970-1-1
     楼主| 发表于 2011-3-8 11:50:09 | 显示全部楼层

    RE:EEPROM在BDM和单片机模式写入的不同?

    INCLUDE 'derivative.inc'
    ;实现读写EPROM
    ; export symbols
    XDEF Entry, _Startup, main
    ; we use export 'Entry' as symbol. This allows us to
    ; reference 'Entry' either in the linker .prm file
    ; or from C/C++ later on
    XREF __SEG_END_SSTACK ; symbol defined by the linker for the end of the stack

    ;********
    ;*********
    ; variable/data section
    MY_EXTENDED_RAM: SECTION
    ; Insert here your data definition.
    Counter ds.w 1
    FiboRes ds.w 1
    FiboRes1 ds.b 1
    FiboRes2 ds.b 1
    AL ds.b 1

    ; code section
    MyCode: SECTION

    main:
    _Startup:
    Entry:
    LDS #__SEG_END_SSTACK ; initialize the stack pointer

    ldx #$000D ;设置波特率
    stx SCI0BD ;4M/0X00D*16 =19200
    ldaa #$00
    staa SCI0CR1
    ldaa #$0C
    staa SCI0CR2 ;接收和发送使能,查询




    LDAA #$11 ;分配地址为1000
    STAA INITEE
    NOP
    NOP

    nop
    nop
    ldaa #$45 ;#39;#21;#$16     ;晶振为8M
    staa ECLKDIV ;8M/8/5=190k
    nop
    nop
    ldaa #$00
    staa ECNFG ;禁止中断
    nop
    nop

    cs: ; ldaa #$05 ;400~ BFF
    ; staa INITEE
    ; nop
    ; nop
    ; ldaa #$11
    ; staa INITRM



    WAIT1: nop
    nop
    brclr ECLKDIV,#$80,WAIT1 ;时间设置成功
    nop
    ldaa #$88
    staa EPROT ;无写保护。保护禁止

    WAIT11: NOP
    NOP
    brclr ESTAT,#$80,WAIT11 ;等待空
    nop

    ldd $1000
    std FiboRes

    ldx FiboRes
    inx
    stx FiboRes

    ; ldaa #$aa
    ; cmpa FiboRes1
    ; bne cs1 ;不相等 跳

    ; inc FiboRes1


    ; ldaa FiboRes1
    ; call ttt

    ; ldaa FiboRes
    ; call ttt
    ; ws: nop
    ; bra ws
    ; cs1: ldaa #$ab
    ; cmpa FiboRes1
    ; bne cs11 ;不相等 跳
    ;loopcs: bra loopcs

    cs11:

    ; ldaa #$ff ;为清空
    ; cmpa FiboRes1
    ; bne cs2 ;没清空 跳
    ; bra cs3 ;清空过
    cs2:
    ldd #00
    std EADDR ;地址
    nop
    ldd #$aaaa
    std EDATA ;数据
    nop
    ldaa #$40;41 ; 擦quanbu字
    staa ECMD ;
    LDAA #$80
    STAA ESTAT
    nop
    WAIT210: nop
    brclr ESTAT,#$40,WAIT210 ;清空
    cs21: nop
    nop
    ldd #00
    std EADDR ;地址
    nop
    ldd #$bbbb
    std EDATA ;数据
    nop
    ldaa #$60 ; 字修改
    staa ECMD
    LDAA #$80
    STAA ESTAT
    nop
    WAIT211: nop
    brclr ESTAT,#$40,WAIT211 ;清空
    ; bra loop1

    ;cs3: ldd #00
    ; std EADDR ;地址
    ; nop
    ; ldd #$aaaa
    ; std EDATA ;数据
    ; nop
    ; ldaa #$20
    ; staa ECMD ;字编写
    ; LDAA #$80
    ; STAA ESTAT
    ; nop
    ;WAIT212: nop
    ; ; brclr ESTAT,#$40,WAIT212 ;清空
    ; brclr ESTAT,#$80,WAIT212 ;清空
    ; ldd #00
    ; std EADDR ;地址
    ; nop
    ; ldd #$aaaa
    ; std EDATA ;数据
    ; nop
    ; ldaa #$20
    ; staa ECMD ;字编写
    ; LDAA #$80
    ; STAA ESTAT

    ; brclr ESTAT,#$80,WAIT31 ;等待空
    ; nop

    ; ldd #00
    ; std EADDR ;地址
    ; nop
    ; ldd #$aaaa
    ; std EDATA ;数据
    ; nop
    ; ldaa #$20
    ; staa ECMD ;字编写
    ; LDAA #$80
    ; STAA ESTAT
    ; nop

    ;WAIT32: nop
    ; brclr ESTAT,#$40,WAIT32 ;写一个字
    loop1:

    nop
    nop
    nop

    nop
    nop
    nop
    nop
    nop
    ldd $1000
    staa FiboRes2
    stab FiboRes1
    nop
    ldaa FiboRes1
    call ttt
    ldaa FiboRes2
    call ttt

    loop:
    nop
    bra loop
    nop
    nop
    nop
    nop

    ttt: staa AL
    nop
    nop
    ttt1: brclr SCI0SR1,#$80,ttt1 ;清除SCI0SR1位需要先读取然后在附值
    ldaa AL
    staa SCI0DRL
    DELAY: nop
    ldaa #50
    ddd: deca
    bne ddd
    nop
    rtc

    nop
    nop
    nop

    END
    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-22 03:03 , Processed in 0.090765 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表