RL-ARM版本:4.22
以太网PHY:DM9161
处理器:STR912FAW4x
软件平台:裸奔
编译环境:MDK-ARM Professional Version: 4.23
目标:固定IP,ping通
如果Keil提供了处理器的MAC驱动,并且驱动与PHY匹配的话,那么RL-TCPnet的实现超简单。Keil提供了STR9的驱动,不过那是为STE100P写的,而我用的是DM9161,驱动不能直接用,因此费了一些脑筋。
RL-TCPnet可独立于RTX内核运行,为了降低调试难度,我采用了裸奔的方式。
1. 添加并修改Net_Config.c
从Keil\ARM\RL\TCPnet\Config复制Net_Config.c,并修改如下:

去掉不用的模块。UDP要选上,因为ping的ICMP包要用到。
2. 添加函数库
从\Keil\ARM\RV31\LIB复制TCP_ARM_L.lib,并添加到MDK。
3. 添加并修改驱动
从\Keil\ARM\RL\TCPnet\Drivers复制STR9_ENET.c和STR9_ENET.h。
对比STE100P和DM9161的手册,发现两个芯片的寄存器0~6内容基本相同(业内标准??),于是我将STE100P特有的寄存器定义去掉,只保留相同的内容(STR9_ENET.h文件):
/* PHY Registers */
#define PHY_REG_XC

本文介绍了如何在RL-ARM 4.22环境下,基于STR912FAW4x处理器和DM9161以太网PHY实现RL-TCPnet。通过修改Net_Config.c,添加TCP_ARM_L.lib,调整STR9_ENET.c和STR9_ENET.h驱动文件,以及编写main.c,实现了固定IP并能ping通的目标。过程中遇到的中断函数问题在裸奔模式下得到解决,同时也分享了注意事项和参考资料。
最低0.47元/天 解锁文章
2161

被折叠的 条评论
为什么被折叠?



