• 关于 网络裁剪怎么用 的搜索结果

回答

希望楼主能多分享下优化心得哈 ######心得?就是怀疑一切。我相信在Soc公司里,开发driver,特别是网络,电源管理,总线方面的朋友都知道。spec有时只能当草纸用。 ######反汇编下代码,看看编译结果有无问题.######去掉编译优化选项再试试######会不会跟子函数传递形参有关?###### 你用的是什么编译器? gcc for arm?你这个问题很可能是编译器的问题. gcc不可靠的对容易有歧义和很复杂的表达式,编译出来的东西是错误的.以前遇到过. VC的或者商用编译器就好多了. ######这么说,反汇编已经检查过了吧,如果确定汇编也没有问题的话,那就只能是硬件层的了。 编译器一般情况下是不会犯错的,因为它无论怎么优化,第一个原则就是正确性,在原程序中会被执行的代码在结果里也一定会被执行。然而,对于不同的芯片,实现上可能会有一定的差异,对编译器也有不同程度的裁剪,但它毕竟只是个程序。再者,芯片实现越来越复杂,内部指令到底是个怎么执行流程,连代码自己都不能知道,何况是编译器和程序员。###### 引用来自“ZeroOne”的答案 你用的是什么编译器? gcc for arm?你这个问题很可能是编译器的问题. gcc不可靠的对容易有歧义和很复杂的表达式,编译出来的东西是错误的.以前遇到过. VC的或者商用编译器就好多了. 上ARM 1GHz的Soc跑的准“固件”。我没办法用VC。而且是android 的NDK。 ###### 引用来自“晓寒”的答案 这么说,反汇编已经检查过了吧,如果确定汇编也没有问题的话,那就只能是硬件层的了。 编译器一般情况下是不会犯错的,因为它无论怎么优化,第一个原则就是正确性,在原程序中会被执行的代码在结果里也一定会被执行。然而,对于不同的芯片,实现上可能会有一定的差异,对编译器也有不同程度的裁剪,但它毕竟只是个程序。再者,芯片实现越来越复杂,内部指令到底是个怎么执行流程,连代码自己都不能知道,何况是编译器和程序员。 目前怀疑是函数过早跳出,对应寄存器的值没有有效传递给外部变量前,被堆栈弹出的数据覆盖,转而将数据写出变量时导致错误。虽然问题解决了。但是具体原因我还需要查一下。当然可能有另外个错误,就是进入计算和判断的变量,在寄存器传递为有些写入前,就被使用。 ######这个问题目前查清楚了,让小朋友看反汇编,让他自己理解。还不错。把问题向我汇报清楚了 。也希望大家注意, android下的C编译器存在错误。尽量把C代码写简单点。上述错误是C编译器在优化模式下的逻辑错误。

kun坤 2020-05-30 14:00:18 0 浏览量 回答数 0

问题

性能测试技术怎么进行?

猫饭先生 2019-12-01 21:26:08 1341 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 SQL审核 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 人工智能 阿里云云栖号 云栖号案例 云栖号直播