背景:国际斗争形式复杂,国产化替代也是不得不的事情,从原来的台湾 瑞昱 换成国产裕太
其实瑞昱 8211 和yt 8531 的外围电路机会一模一样,所以可以pin to pin 替换
调试之前需要根据官方说明,修改去驱动 net/phy 目录下的 kconfig makefile ,并把官方驱动copy 到驱动目录下,编译,生成boot.img ,在驱动目录下观察是否生成 xxx.o 文件,裕太驱动代码的文件名:motorcomm.o
注意:芯片产生的核电压 1.1V 有时候这个电压很不稳定导致phy 芯片不能正常运行(建议用示波器测量,异常情况下纹波超级大,万用表测不出来),调试前先保证外围电路连接正确,电压正常。
异常现象:系统可以识别芯片,eth x 可以正常出现,可以设置ip,但ping 不通外网。
调试准备:要确认芯片状态那么需要读取芯片内部寄存器确认芯片状态才行,不然就是瞎子戴着手套摸象。
调试工具:裕太手册提供了一个读取手段 寄存器读写工具,个人推荐第二种,编译phy.c 的方如下图:

编译成可执行文件。执行如下指令读取和写入寄存器

根据手册读取寄存器并查看数据手册查找异常。
我的情况是ping 不通外网,时钟从表象看起来比较正常,比如 125M ,25M,2.5M。
排除问题:
1.经过厂家指导,采用内部环路测试,当采用 1000M ,100M,10M 配置的时候能发现 接收包不变,发送包一直在增加 (这里不能确定是否发送成功,或者接收部分有异常),所以暂时没有找到问题。
2.测试芯片外围,TX 和 RX 发现 rx clk 时钟 125M 而 tx clk 是25M,咨询官方phy 芯片 在 1000M 速率下 TX 和 RX 时钟都应为 125M,所以确定是 rk3568 gmac 发出的时钟存在问题,那么去查找设备树,看时钟配置的是否有问题。果然—
所以,设备树配置如下:(仅供参考)

assigned-clock-rates=<0>, <125000000>; 可以屏蔽掉
改完,重新编译,生成boot,烧写,灯的闪烁跟异常的时候有差异,ping 网关,ok,搞定,用iperf 测试速度----
GivenIamadumbprogrammerandIamusingrspecandIamusingsporkandIwanttodebug...mmm...let'ssaaay,aspecforPhone.那么,我应该把“require'ruby-debug'”行放在哪里,以便在phone_spec.rb的特定点停止处理?(我所要求的只是一个大而粗的箭头,即使是一个有挑战性的程序员也能看到:-3)我已经尝试了很多位置,除非我没有正确测试它们,否则会发生一些奇怪的事情:在spec_helper.rb中的以下位置:require'rubygems'require'spork'
使用Ruby1.9.2运行IDE提示说需要gemruby-debug-base19x并提供安装它。但是,在尝试安装它时会显示消息Failedtoinstallgems.Followinggemswerenotinstalled:C:/ProgramFiles(x86)/JetBrains/RubyMine3.2.4/rb/gems/ruby-debug-base19x-0.11.30.pre2.gem:Errorinstallingruby-debug-base19x-0.11.30.pre2.gem:The'linecache19'nativegemrequiresinstall
我有:When/^(?:|I)follow"([^"]*)"(?:within"([^"]*)")?$/do|link,selector|with_scope(selector)doclick_link(link)endend我打电话的地方:Background:GivenIamanexistingadminuserWhenIfollow"CLIENTS"我的HTML是这样的:CLIENTS我一直收到这个错误:.F-.F--U-----U(::)failedsteps(::)nolinkwithtitle,idortext'CLIENTS'found(Capybara::Element
Ruby是否有逐步调试器,类似于Perl的“perl-d”? 最佳答案 ruby-debug(对于ruby1.8),debugger(对于ruby1.9),byebug(对于ruby2.0)以及trepanning系列都有一个-x或--trace选项。在调试器内部,命令setlinetrace将打开或关闭线路跟踪。这是themanualforruby-debug原来的答案已经修改,因为数据噪声文章的链接,唉,不再有效了。还添加了ruby-debug的后继者 关于ruby-Ruby
文章目录一、项目场景二、基本模块原理与调试方法分析——信源部分:三、信号处理部分和显示部分:四、基本的通信链路搭建:四、特殊模块:interpretedMATLABfunction:五、总结和坑点提醒一、项目场景 最近一个任务是使用simulink搭建一个MIMO串扰消除的链路,并用实际收到的数据进行测试,在搭建的过程中也遇到了不少的问题(当然这比vivado里面的debug好不知道多少倍)。准备趁着这个机会,先以一个很基本的通信链路对simulink基础和相关的debug方法进行总结。 在本篇中,主要记录simulink的基本原理和基本的SISO通信传输链路(QPSK方式),计划在下篇记
我已经开始使用RubyMine6。我正在处理Rails4、Ruby2.1.1项目。我无法找到如何使用Pow作为服务器调试到RubyMine。你能给我指明正确的方向吗? 最佳答案 我能够使用远程调试从RubyMine进行调试。我正在使用RubyMine6、Rails3、Ruby2.1.1。首先创建一个.powenv文件并添加:exportRUBY_DEBUG_PORT=1234exportPOW_WORKERS=1将以下gem添加到您的Gemfile:gem'ruby-debug-ide'gem'debase'创建一个新的初始化器st
当我编写代码时,我非常频繁地使用“puts”语句进行调试。它允许我查看服务器中发生的情况。在调试代码的时候,不知道是什么原因,我把这些“puts”语句去掉了。这是个好主意还是我应该保留它们以使我的服务器日志更加清晰? 最佳答案 您应该使用记录器而不是puts。使用这种语句:Rails.logger.debug"DEBUG:#{self.inspect}#{caller(0).first}"ifRails.logger.debug?如果您想(几乎)实时查看调试,只需在另一个终端窗口中使用tail命令:tail-Flog/develop
我试图在我的RubyonRails应用程序中调试一个极其缓慢的请求调用。我已设法根据自己的喜好优化Controller方法,Rails的日志告诉我它已在XX毫秒内完成操作(Completed200OKin5049ms(Views:34.9ms|ActiveRecord:76.3ms)).但是,在加载页面时,在浏览器中实际呈现任何内容之前打印此消息很长;最多约15秒的等待时间。Rackmini-profiler证实了这一点,告诉我GET操作(不计算完成Controller操作所花费的时间)花费了14秒左右。(分析器还确认Controller操作的执行时间约为5秒)。我可以接受Contro
假设我在调试时停在了点上:defget_databyebug=>@cache||=calculate_dataend而@cache有值,所以step函数calculate_data不会被执行。但是我需要在这个确切的运行时点检查calculate_data内部发生了什么。我可以只执行calculate_data并在控制台输出中查看其结果,但是我可以从调试控制台执行函数并同时进入它?(使用byebug或其他一些调试工具)。目标-是在任意时间检查calculate_data逻辑,特别是当get_data调用时@cache已填充。 最佳答案
这是一个长期存在的挫败感来源,但也许我遗漏了什么。如果我正在调试,并且我想退出调试器并返回到IRB或Rails控制台,“退出”将不起作用,因为它将退出IRB。“完成”似乎也与继续具有相同的效果。使用“删除”删除断点然后尝试“继续”或“完成”不起作用。有什么想法吗? 最佳答案 至少在byebug中,你可以这样做:evalreturn它具有计算当前函数的return语句的净效果。这有时会奏效,具体取决于调用堆栈的外观。现在虽然这不会删除当前断点....如果您只是想收回控制权,在大多数情况下这会做到这一点,具体取决于您的代码结构。在您的代