裸机调试AM3358网口

Posted limj1987

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了裸机调试AM3358网口相关的知识,希望对你有一定的参考价值。

按照惯例,先介绍我自己的开发环境:

  • 系统:win7 64bit sp1
  • CCS版本:Code Composer Studio 6.2.0
  • 调试代码:AM335X_StarterWare_02_00_01_01
  • 仿真器:XDS100V2 USB
  • 电路板:自己根据beaglebone_black绘制的,芯片是AM3358,包括百兆网口、UART串口、DDR3、NAND Flash、USB、SPI和IIC,除了SPI和IIC的IO管脚,其他电路完全参考beaglebone_black板子。

为了验证电路板各个接口硬件是否正常,我们采用了裸跑驱动程序的方式。使用的代码是AM335X_StarterWare_02_00_01_01里面beaglebone的测试例程。

       前面已经验证完了GPIO和串口,今天来验证网口,原理图如下图所示,跟beaglebone RevA5的完全一样;网卡的CCS工程文件在:D: iAM335X_StarterWare_02_00_01_01uildarmv7acgt_ccsam335xeagleboneenet_echo,用CCS导入该工程即可。

技术分享图片

步骤1:导入网口程序工程文件File->Import..-> Code Composer Studio->CCS project Next->Select CCS Porject to Import 点击Brower选择D: iAM335X_StarterWare_02_00_01_01uildarmv7acgt_ccsam335xeaglebone勾选网口测试程序enetEcho,点击Finsh

 技术分享图片

步骤2:设置调试版本为release

 技术分享图片

步骤3:编译

 技术分享图片

步骤4:建立目标板配置文件,名字自定义,点击Finsh

 技术分享图片

步骤5:测试JTAG接口连接状态, 进入配置界面后,选择你自己的仿真器型号,这里我选择XDS100V2 USB,在Board or Decice下拉框里选择AM3358,随后点击Save保存,最后点击Test Coonnection,成功后,会显示The JTAG DR Integrity scan-test has succeeded。

 技术分享图片

步骤6:在线仿真,点击debug按钮,进入debug模式

 技术分享图片

成功进入debug模式如下图所示

 技术分享图片

步骤7:连接目标板

 技术分享图片

成功后,如下图所示

 技术分享图片

步骤8:加载Gel文件。点击Tools→Gel Files,在CCS 主窗口下方会出现一个Gel File 新功能窗口。将 鼠 标 放 在上图右下角的GEL Files 窗口中点击右键, 加载gel 文件
(D: iccsv6ccs_baseemulationoardseaglebonegel 目录下)选择,beagleboneblack.gel

 技术分享图片

步骤9:初始化芯片。Scripts->Am335x_System_Initialization-> Am335x_Beaglebone_Initialization

 技术分享图片

步骤10:加载网口测试程序。Run->Load->Load Program,选择刚才编译好的enetEcho.out文件,目录为D: iAM335X_StarterWare_02_00_01_01inaryarmv7acgt_ccsam335xeagleboneenet_echoRelease

 技术分享图片

步骤11:打开串口调试助手,连接串口0,这里使用的是AM3358芯片的UART0,115200-N-8-1

 技术分享图片

步骤12:运行

 技术分享图片

步骤13:查看串口调试助手打印信息

 技术分享图片

步骤14:使用笔记本电脑Ping目标板

 技术分享图片

电脑网口配置信息如下

 技术分享图片

 

注意:这里要说明下,我使用笔记本调试,没有经过路由器,用网线直接与电路板相连,因此,修改了例程中的通信方式,没有使用自动分配IP的方式(DHCP),而是使用的静态IP方式。

 

修改方法如下:

(1) 修改lwipopts.h文件中的STATIC_IP_ADDRESS_PORT1和STATIC_IP_ADDRESS_PORT2,原始值为0,现改为:

#define STATIC_IP_ADDRESS_PORT1         0xC0A80164

#define STATIC_IP_ADDRESS_PORT2         0xC0A80165

(2)  修改enetEcho.c文件中的IP设置部分,修改如下

#if STATIC_IP_ADDRESS_PORT1

    lwipIfPort1.instNum = 0;

    lwipIfPort1.slvPortNum = 1;

    lwipIfPort1.ipAddr = STATIC_IP_ADDRESS_PORT1; //192.168.1.100

    lwipIfPort1.netMask = 0xFFFFFF00;//255.255.255.0

    lwipIfPort1.gwAddr = 0xC0A80101;//192.168.1.1

    lwipIfPort1.ipMode = IPADDR_USE_STATIC;


以上是关于裸机调试AM3358网口的主要内容,如果未能解决你的问题,请参考以下文章

ok6410[002] ubuntu1604系统下搭配ckermit和dnw基于RAM的裸机程序调试环境

linux上使用J-Link调试S3C2440裸机代码

S3C6410基于SD卡的裸机开发

编译裸机程序以及交叉工具链

裸机开发框架构建之---点灯大师

5.Eclipse集成开发环境