创建SRAM程序,验证芯片是否可以正常工作

当我们拿到一个新板子,在ddr不确定,不能运行的情况下,应该先验证芯片是否正常工作。


p1020片内存储:cpu寄存器->L1cache->L2cache->DDR->Flash …

L2大小有256K,足够我们裸机程序运行了,所以使用codewarrior先建立SRAM工程。

环境

    CodeWarriorDevelopmentStudio for Power Architecture v10.5.1 - Windows.exe CodeWarrior Connection Server Ethernet Tap
  1. CodeWarrior安装好,确保license未过期
  2. Ethernet Tap连接正确
  3. CodeWarrior Connection Server连接正确

创建SRAM程序

  1. 打开codewarrior
  2. File->New->Create a CodeWarrior Bareboard Project
  1. next, 选择芯片型号,创建Application
  1. next,选择board(随便选一个默认单板),选择下载方式(Download SRAM),仿真器类型(ETAP,ip)
  1. finish

build

切换到RAM程序,点击编译按钮

debug配置

  1. 按图示打开Debug Configuration
  1. 配置debug config,确认以下配置是否正确
  1. 点击Edit,查看etap配置是否正确
  1. 点击Edit,查看初始化脚本是否正确
  1. 初始化脚本,在我们裸机程序运行之前必须先对芯片进行初始化,我们的裸机程序才能运行,这里的tcl文件就是对芯片寄存器进行初始化,使我们的裸机程序可以运行起来的关键,很多时候我们的程序运行不起来,除去硬件原因,大多数是tcl文件有问题。
  2. 内存文件,具体作用我也不太清楚,应该是将内存映射转换的作用。
  1. ok->ok->Apply

Debug、验证

  1. 点击Debug按钮,开始Debug
  1. 运行程序,进入debug后,等一会程序进度会指到main后的第一行代码,点击运行,让程序跑起来。
  2. 如果程序正常运行,则芯片可以正常运行。如果不能正常运行,再次检查以上配置是否正确,以及检查硬件。

总结

这里我们要重点搞清楚一下几点:

    codewarrior的使用?ccs、etap、usbtap的使用? 为什么要从SRAM启动? SRAM启动程序运行在哪里? tcl文件的作用? SRAM启动验证了什么? 芯片运行的必要条件有哪些?
经验分享 程序员 微信小程序 职场和发展