我正在寻找由ARM Cortex-A9处理器(如具有多个ARM A9处理器的Nvidia Tegra 2和Tegra 3)制造的SoC的L1访问延迟和L2访问延迟.
我可以找到一些关于这些架构的L1和L2大小的信息,但我对L1和L2访问延迟的信息不多.我发现的唯一可靠信息是"在Tegra 3上L2缓存延迟比2缓存2个周期快,而L1缓存延迟没有改变."
这里提到Tegra 2上的L2具有25个周期的延迟,并且这里提到L1具有4个周期的延迟并且L2具有31到55个周期的延迟.这些参考文献都不是完全可靠的.我希望能找到有关Nvidia,TI和Qualcomm网站和技术文档的更多信息,但没有成功.
编辑:OMAP4460和OMAP4470等类似SoC的信息也很棒.
我使用Javacv代码在Andorid中制作了一个自定义相机.我没有包含所有.so文件,只包括我的应用程序所需的文件.如下面的屏幕截图:

它适用于Samsumg Galaxy S2,S3和索尼爱立信Xperia Arc.没问题.但是,当我试图在三星P7500 Galaxy Tab 10.1上运行它时,它崩溃了我使用的第一行Javacv代码,恰好是:
yuvIplImage = IplImage.create(previewWidth, previewHeight, IPL_DEPTH_8U, 2);
Run Code Online (Sandbox Code Playgroud)
此尝试的Logcat输出:
07-08 13:30:13.930: I/ActivityManager(192): START {intent.toShortString} from pid 7836
07-08 13:30:14.000: I/ActivityManager(192): Start proc app.processName for activity hostingNameStr: pid=7847 uid=10001 gids={1006, 3003, 1015, 1023}
07-08 13:30:14.190: D/NvOsDebugPrintf(116): GetParameter(): 37 not supported
07-08 13:30:14.190: E/NvOmxCameraSettingsParser(116): Param type 71 not supported
07-08 13:30:14.240: W/dalvikvm(7847): VFY: unable to resolve virtual method 18783: Ljava/awt/image/BufferedImage;.getSampleModel ()Ljava/awt/image/SampleModel;
07-08 13:30:14.250: D/dalvikvm(7847): VFY: replacing opcode 0x22 at 0x0007
07-08 13:30:14.250: W/dalvikvm(7847): VFY: …Run Code Online (Sandbox Code Playgroud) 在Mountain Lion 10.8.4上为Nexus 7编译Android内核时遇到致命错误:'elf.h'文件未找到问题:
/Volumes/Android/WORKING_DIRECTORY/device/asus/grouper/tegra/
[derek@retina-mbp]$ make
scripts/kconfig/conf --silentoldconfig Kconfig
CHK include/linux/version.h
UPD include/linux/version.h
CHK include/generated/utsrelease.h
UPD include/generated/utsrelease.h
Generating include/generated/mach-types.h
CC kernel/bounds.s
GEN include/generated/bounds.h
CC arch/arm/kernel/asm-offsets.s
GEN include/generated/asm-offsets.h
CALL scripts/checksyscalls.sh
CC scripts/mod/empty.o
HOSTCC scripts/mod/mk_elfconfig
scripts/mod/mk_elfconfig.c:4:10: fatal error: 'elf.h' file not found
#include <elf.h>
^
1 error generated.
make[2]: *** [scripts/mod/mk_elfconfig] Error 1
make[1]: *** [scripts/mod] Error 2
make: *** [scripts] Error 2
Run Code Online (Sandbox Code Playgroud)
有谁知道如何解决这个问题,以便内核编译可以继续?
我正在使用embedded-linux开发一个C++应用程序,我需要在其中显示来自摄像头的视频.我使用gstreamer来创建一个窗口并开始视频捕获(因为它在tegra上有硬件支持),带有命令:
system("gst-launch -e v4l2src device=\"/dev/video0\" \
! \"video/x-raw-yuv,width=320,height=240\" \
! videoflip method=counterclockwise \
! nvvidconv \
! nvxvimagesink &")
Run Code Online (Sandbox Code Playgroud)
设备上的主要应用程序是全屏运行的,因此我需要将此窗口放在屏幕上的特定位置,这样用户就会感觉它在同一个"窗口"中运行.我设法做到这一点:
XMoveWindow(display, win_video, x, y); // x, y from top left point in landscape mode!
Run Code Online (Sandbox Code Playgroud)
我面临的问题是gst-launch首先显示在0,0坐标上(因为它是从命令行运行的),然后在应用程序中以正确的位置(以编程方式)"捕捉".我这样做是通过运行XQueryTree来搜索所有显示的窗口并找到具有gst-launch的窗口然后移动它.这需要一些时间并且看起来不太好,所以我正在寻找更好的解决方案.
我已经尝试在gst-launch管道中使用视频文件将视频定位在屏幕上,但问题是它从0,0绘制了一个黑色边框到视频窗口(border-alpha = 0应该解决这个问题,但是它没有 - 我认为问题出在nvvidconv或nvxvimagesink中,但我无法知道):
gst-launch -e v4l2src device="/dev/video0" ! "video/x-raw-yuv,width=320,height=240" ! videobox border-alpha=0 top=-50 left=-50 ! nvvidconv ! nvxvimagesink
Run Code Online (Sandbox Code Playgroud)
第二个解决方案是我将主应用程序窗口设置为始终在顶部,在找到视频窗口后,将其移动到位置,然后将主应用程序恢复正常并将视频窗口移到顶部.我已经尝试了两种方法,我在这里设置始终在顶部,但两者都不起作用.第一:
Status x11_window_set_on_top (Display* display, Window xid)
{
XEvent event;
event.xclient.type = ClientMessage;
event.xclient.serial = 0;
event.xclient.send_event = True;
event.xclient.display = display;
event.xclient.window = xid; …Run Code Online (Sandbox Code Playgroud) 我正在尝试为 Tegra TK1 编译 C++ 库。该库链接到我使用包管理器拉取的 TBB。在编译期间我收到以下错误
/tmp/cc4iLbKz.s: Assembler messages:
/tmp/cc4iLbKz.s:9541: Error: thumb conditional instruction should be in IT block -- `strexeq r2,r3,[r4]'
Run Code Online (Sandbox Code Playgroud)
有点谷歌搜索,这个问题让我尝试添加-mimplicit-it=thumb到 CMAKE_CXX_FLAGS,但编译器无法识别它。
我正在使用内核 3.10.40-grinch-21.3.4 在 tegra 上编译,并使用 gcc 4.8.4 编译器(这就是我输入 c++ -v 时返回的内容)
我不确定最初的错误消息是什么意思,但我认为它与 TBB 链接库而不是我正在编译的源有关。修复的问题也很神秘。任何人都可以对此有所了解吗?
我在Tegra处理器上找不到任何关于CUDA使用的东西,尽管它们提供了相当多的SIMD内核(~72).看起来NVIDIA目前通过Tegra开发套件(基于Android)将开发工作重点放在Tegra上.
所以我的问题是:"是否有可能在Tegra 4或前辈上使用CUDA(或OpenCL),如果可以,支持哪个版本?"
它明确提到 Tegra TX1 有共享内存。我的问题:CPU 和 GPU 之间共享内存吗?或者该内存是在 GPU 中的不同块之间共享的。
我从.run扩展名的以下链接下载了Tegra开发包.但我不知道如何运行此软件包进行安装.我是Ubuntu和这个tegra环境的新手.
提前致谢.