当我们拿到一个新板子,在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
- CodeWarrior安装好,确保license未过期
- Ethernet Tap连接正确
- CodeWarrior Connection Server连接正确
创建SRAM程序
- 打开codewarrior
- File->New->Create a CodeWarrior Bareboard Project
- next, 选择芯片型号,创建Application
- next,选择board(随便选一个默认单板),选择下载方式(Download SRAM),仿真器类型(ETAP,ip)
- finish
build
切换到RAM程序,点击编译按钮
debug配置
- 按图示打开Debug Configuration
- 配置debug config,确认以下配置是否正确
- 点击Edit,查看etap配置是否正确
- 点击Edit,查看初始化脚本是否正确
- 初始化脚本,在我们裸机程序运行之前必须先对芯片进行初始化,我们的裸机程序才能运行,这里的tcl文件就是对芯片寄存器进行初始化,使我们的裸机程序可以运行起来的关键,很多时候我们的程序运行不起来,除去硬件原因,大多数是tcl文件有问题。
- 内存文件,具体作用我也不太清楚,应该是将内存映射转换的作用。
- ok->ok->Apply
Debug、验证
- 点击Debug按钮,开始Debug
- 运行程序,进入debug后,等一会程序进度会指到main后的第一行代码,点击运行,让程序跑起来。
- 如果程序正常运行,则芯片可以正常运行。如果不能正常运行,再次检查以上配置是否正确,以及检查硬件。
总结
这里我们要重点搞清楚一下几点:
- codewarrior的使用?ccs、etap、usbtap的使用?
- 为什么要从SRAM启动?
- SRAM启动程序运行在哪里?
- tcl文件的作用?
- SRAM启动验证了什么?
- 芯片运行的必要条件有哪些?