yzhiju

yzhiju

0个粉丝

12

问答

0

专栏

0

资料

yzhiju  发布于  2017-12-21 16:32:07
采纳率 0%
12个问答
1972

原先正常hi3520d的c++应用程序交叉编译到3536上为什么跑飞 cpu一个核占100%

 
如题,3520d的程序直接放到3536上反而能运行起来,问下有遇见这个奇怪问题吗
我来回答
回答1个
时间排序
认可量排序

yzhiju

0个粉丝

12

问答

0

专栏

0

资料

yzhiju 2017-12-22 16:21:11
认可0
4.注意事项
(1)在windows下复制源码包时,linux下的可执行文件可能变为非可执行文件,导致无法编译使用;u-boot或内核下编译后,会有很多符号链接文件,在windows下复制这些源码包, 会使源码包变的巨大,因为linux下的符号链接文件变为windows下实实在在的文件,因此源码包膨胀。因此使用时请注意不要在windows下复制源代码包。
(2)使用某一工具链编译后,如果需要更换工具链,请先将原工具链编译文件清除,然后再更换工具链编译。
(3)编译板端软件
    a.Hi3536具有浮点运算单元和neon。文件系统中的库是采用软浮点和neon编译而成,因此请用户注意,所有Hi3536板端代码编译时需要在Makefile里面添加选项-march=armv7-a、-mfloat-abi=softfp和-mfpu=neon-vfpv4。
    b.v300和v400工具链都是基于GCC4.8的。从GCC4.7开始,在编译基于ARMv6 (除了ARMv6-M), ARMv7-A, ARMv7-R, or ARMv7-M的代码时,为了支持以地址非对齐方式访问内存,默认激活了-munaligned-access选项,但这需要系统的内核支持这种访问方式。Hi3536不支持地址非对齐的内存访问方式,所以板端代码在编译的时候需要显式加上选项-mno-unaligned-access。([url]http://gcc.gnu.org/gcc-4.7/changes.html[/url])
    c.GCC4.8使用了更激进的循环上界分析策略,这有可能导致一些不相容的程序运行出错。建议板端代码在编译的时候使用-fno-aggressive-loop-optimizations关闭此优化选项,以避免代码运行时出现奇怪的错误。([url]http://gcc.gnu.org/gcc-4.8/changes.html[/url])
如:
    CFLAGS += -march=armv7-a -mfloat-abi=softfp -mfpu=neon-vfpv4 -mno-unaligned-access -fno-aggressive-loop-optimizations
    CXXFlAGS +=-march=armv7-a -mfloat-abi=softfp -mfpu=neon-vfpv4 -mno-unaligned-access -fno-aggressive-loop-optimizations
其中CXXFlAGS中的XX根据用户Makefile中所使用宏的具体名称来确定,e.g:CPPFLAGS。
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区