查看: 1707|回复: 2

[其他] 每天解决一个问题 13:外部RAM使程序运行不正确

[复制链接]
  • TA的每日心情
    擦汗
    2022-3-3 09:56
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    106

    主题

    836

    帖子

    4

    金牌会员

    Rank: 6Rank: 6

    积分
    1527
    最后登录
    2023-6-12
    发表于 2015-9-6 20:34:09 | 显示全部楼层 |阅读模式
    本帖最后由 jinyi7016 于 2015-9-8 20:20 编辑

    纯个人开发经历中的经验、出错及解决,纯手打文字方式,杜绝“Ctrl+C”、“Ctrl+V”,多多支持,收藏备用。
    背景
    K64接了一片外部的SRAM,不使能时,程序正常运行,使能后将大量AD芯片的采样数据存入SRAM,程序有时就死了,没反应,有时就数据错乱。
    解决
    不使用外部SRAM,只是将几个AD数据存在片内的RAM里,程序没有问题,结果正确。
    使用外部SRAM,存储几个AD数据程序就不正常了。
    使用外部SRAM,但不用AD芯片,只是把地址上写几个数,程序也不正常。
    可以确定不是AD芯片的问题,是外部SRAM的问题。
    反复看手册,对驱动 ,没有找出问题。
    最后发现,在初始化外部SRAM前,开了DMA中断,就开始从AD芯片读取数据了,但这时SRAM还不能用,导致程序运行错误。
    延伸
    记得在用STM32时,外部的SRAM的初始化都放在了main之前的一个函数,这个函数在启动文件中先于main调用,而K64中没有这样的架构,导致这个错误。也是之前对STM32库没有仔细研究,用库也有不好的地方啊,方便是方便。
    还有也是昨天说的那个问题,main是C的入口,但不是单片机的0x00地址,hex程序不是从main开始的哦。

    我知道答案 目前已有2人回答
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-9 14:16
  • 签到天数: 17 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    25

    主题

    1785

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2250
    最后登录
    2024-6-11
    发表于 2015-9-6 23:42:16 | 显示全部楼层
    学习了。。谢谢分享,


    freescaleic.org.png
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    61

    主题

    965

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2394
    最后登录
    1970-1-1
    发表于 2015-9-10 12:48:14 | 显示全部楼层
    学习            
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-9-13 16:23 , Processed in 0.090388 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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