相关疑难解决方法(0)

为多种体系结构生成优化的NDK代码?

我有一些Android的C代码,可以进行大量的低级数字运算.我想知道我应该使用哪些设置(例如我的Android.mk和Application.mk),以便生成的代码可以在所有当前的Android设备上运行,但也可以利用特定芯片组的优化.我正在寻找使用良好的默认Android.mk和Application.mk设置,我想避免使用#ifdef分支丢弃我的C代码.

例如,我知道ARMv7有浮点指令,一些ARMv7芯片支持NEON指令,默认ARM不支持这些指令.是否可以设置标志,以便我可以使用NEON,没有NEON的ARMv7和默认的ARM构建来构建ARMv7?我知道如何做后两者但不是全部3.我对我使用的设置持谨慎态度,因为我认为当前默认设置是最安全的设置以及其他选项有哪些风险.

对于GCC特定的优化,我使用以下标志:

LOCAL_CFLAGS=-ffast-math -O3 -funroll-loops
Run Code Online (Sandbox Code Playgroud)

我检查了所有这三个加速了我的代码.还有其他我可以添加的常见内容吗?

我的另一个提示是将"LOCAL_ARM_MODE:= arm"添加到Android.mk以加快更新的手臂芯片(尽管我对这件事以及旧芯片上发生的事情感到困惑).

c java-native-interface android gcc android-ndk

53
推荐指数
2
解决办法
2万
查看次数

如何编译Android AOSP内核并使用Android Emulator进行测试?

有没有人成功编译了android内核并在Android模拟器中测试过它,如果有的话还有什么特别需要做的吗?

SDK的文档非常好,但是我很难找到用于编译内核和在模拟器中设置自定义机器的文档.

android emulation android-emulator android-source

52
推荐指数
6
解决办法
8万
查看次数

QEMU - 代码流[指令缓存和TCG]

我正在尝试分析QEMU源代码.

我知道它很庞大,直到约会还没有官方文件.

我主要关注的是指令缓存管理和TCG操作.

任何指向它们的指针都会有所帮助吗?

qemu

21
推荐指数
1
解决办法
7729
查看次数

跟踪/分析说明

我想在指令级别对我的C代码进行统计分析.我需要知道我正在执行多少次加法,乘法,除法等.

这不是您通常的磨码分析要求.我是算法开发人员,我想估算将代码转换为硬件实现的成本.为此,我被问到运行时的指令调用故障(解析编译的程序集是不够的,因为它不考虑代码中的循环).

环顾四周后,似乎VMware可能提供了一个可能的解决方案,但我仍然找不到能够跟踪我的进程的指令调用流的特定功能.

你知道任何能够实现这一目标的分析工具吗?

c assembly profiling instructions

13
推荐指数
3
解决办法
4054
查看次数

如何在QEMU上的GDB中单步ARM组装?

我正在尝试使用GNU汇编程序学习ARM汇编程序编程.我用QEmu设置了我的PC,并拥有Debian ARM-HF chroot环境.

如果我汇编并链接我的测试程序:

.text
.global _start
_start:
        mov     r0, #6
        bx      lr
Run Code Online (Sandbox Code Playgroud)

有:

as test.s -o test.o
ld test.o -o test
Run Code Online (Sandbox Code Playgroud)

然后将文件加载到gdb并在_start上设置断点:

root@Latitude-E6420:/root# gdb test
GNU gdb (GDB) 7.6.1 (Debian 7.6.1-1)
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was …

linux assembly gdb arm qemu

5
推荐指数
3
解决办法
5187
查看次数

HERE地图Android集成,MISSING_LIBRARIES错误

我按照步骤 https://developer.here.com/mobile-sdks/documentation/android/topics/app-simple-android-studio.html

但我得到的错误是:无法初始化Map Fragment MISSING_LIBRARIES

映射init代码:

mapFragment.init(new OnEngineInitListener() {
            @Override
            public void onEngineInitializationCompleted(OnEngineInitListener.Error error) {
                if (error == OnEngineInitListener.Error.NONE) {
                    // retrieve a reference of the map from the map fragment
                    map = mapFragment.getMap();
                    // Set the map center to the Vancouver region (no animation)
                    map.setCenter(new GeoCoordinate(49.196261, -123.004773, 0.0),
                            Map.Animation.NONE);
                    // Set the zoom level to the average between min and max
                    map.setZoomLevel(
                            (map.getMaxZoomLevel() + map.getMinZoomLevel()) / 2);
                } else {
                    System.out.println("ERROR: Cannot initialize Map Fragment " + error.toString());
                    Toast.makeText(MainActivity.this, …
Run Code Online (Sandbox Code Playgroud)

android here-api

4
推荐指数
1
解决办法
1439
查看次数

如何下载 Torvalds Linux Kernel master、(重新)编译它并使用 QEMU 启动它?

几天来,我正在研究一个小项目,以探索内核编程。然而,我在网上看了很多关于内核编译的问题,并在之前问过一个问题,但我在某些时候仍然感到迷茫。

如果我需要进行一些内核编程,我认为使用 Linus Torvalds 的 Linux 源代码将是最好的起点。所以我做了以下操作(来自 MacOS High Sierra)

  • 下载内核源代码:https://github.com/torvalds/linux
  • 解压它
  • 启动终端并运行:
    • vagrant init
    • vagrant up
    • vagrant ssh
  • 连接后,我输入:
    • cd /vagrant/linux 为了进入Linux源解压文件夹
    • make menuconfig 我只是按了确定/保存
    • sudo make -j 4 && sudo make modules_install -j 4 && sudo make install -j 4

现在,我遇到了一个小错误:

agrant @vagrant-ubuntu-trusty-64:/vagrant/Kernel-Programming/linx-kernel$ sudo make -j 4 && sudo make modules_install -j 4 && sudo make install -j 4
  CHK include/config/kernel.release
CHK     include/generated/uapi/linux/version.h
CHK     include/generated/utsrelease.h
CHK     scripts/mod/devicetable-offsets.h
CHK     include/generated/timeconst.h
CHK     include/generated/bounds.h
CHK     include/generated/asm-offsets.h
CALL    scripts/checksyscalls.sh …
Run Code Online (Sandbox Code Playgroud)

linux qemu linux-kernel macos-high-sierra

1
推荐指数
1
解决办法
5152
查看次数