这是一个非常小的C++ 11 Thread API代码,我正在尝试编译
#include<iostream>
#include<thread>
using namespace std;
void threadFunction(void)
{
cout<<"hello from thread:";//<<this_thread::get_id()<<endl;
}
int main()
{
std::thread t(threadFunction);
t.join();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在编译它为
g ++ thread1.cpp -pthread -std = c ++ 11
我得到以下错误
名为
terminate的纯虚方法在没有活动异常的情况下被
调用
Aborted
有什么不对,请有人帮忙
请注意我正在使用ARM A8处理器在Beaglebone Black上进行编译
PS:第一次gstreamer用户在这里.:)
我试图从使用gstreamer连接到beaglebone的logitech c920网络摄像头流式传输视频到nginx服务器.但不知何故,rtmpsink对我失败了.但是,随着filesink能够将视频保存在beaglebone上.虽然我仍然有一些帧丢失问题而没有音频,但我希望流媒体部分能够先工作.Im使用的命令是
GST_DEBUG=4 GST_DEBUG_FILE=gst2.log gst-launch-1.0 -v -e uvch264src device=/dev/video0 name=src auto-start=true average-bitrate=5000000 iframe-period=33 src.vidsrc ! queue ! video/x-h264,width=1920,height=1080,framerate=30/1 ! h264parse ! flvmux ! rtmpsink location="rtmp://192.168.1.104:1935/hls/movie"
Run Code Online (Sandbox Code Playgroud)
我的调试输出在这里. 要旨
gstreamer在5秒内退出.
我验证了流媒体服务器的工作原理.但是从客户端来看,gstreamer并没有给我任何错误信息.或者我不知道如何正确调试它.
我坚持这个问题持续了这么多天.任何帮助,将不胜感激.
谢谢.
:我能够使用ffmpeg将本地文件发送到我的rtmp服务器,并且服务器正在按预期处理它.
ffmpeg -re -i /Users/r3dsm0k3/10.mp4 -vprofile baseline -ar 44100 -ac 1 -c copy -f flv rtmp://192.168.1.4:1935/hls/example
Run Code Online (Sandbox Code Playgroud)
用fakesink试过gstreamer并没有任何错误.
也试过v4l2src,没有运气.
我们目前正在开发BeagleBone Black的应用程序(使用标准的Angstrom发行版).它在GDB(由Netbeans远程控制)下运行一段时间(5-10分钟)非常愉快,但在一些相对随机的时间点会冻结 - 心跳LED停止闪烁并需要完全重启.
一种可能性是它只是造成这种情况的(USB)设备的数量.我们通过FTDI串行链接连接到我的开发PC(有一个客户端应用程序与我的BBB服务器通信).有一个4路FTDI集线器,其上有多个设备(当前为3个),另一个FTDI连接与另一个硬件连接.另外,两个I2C设备.加上鼠标和键盘.
当然,除了传闻之外,我没有任何其他证据表明这是USB导致的问题.我的软件没有引起任何信号,日志文件告诉我更多信息.我已经运行了系统监视器应用程序,看看我是否正在泄漏内存,但它看起来表现良好且稳定(尽管CPU确实在上升).我想找到一种方法来了解失败的原因,并希望得到一些帮助.
我可以看看/sys/kernel/debug/pinctrl/44e10800.pinmux/pins我感兴趣的引脚:
pin 38 (44e10898.0) 00000037 pinctrl-single
Run Code Online (Sandbox Code Playgroud)
这对应于GPIO[2]4,或P8.10.
我正在使用带有内核的Fedora 21 3.17.7-300.fc21.armv7hl.
我想将多路复用器更改为0x27.总之,这会将引脚配置为具有内部下拉电阻(之前,它是上拉电阻).
期望的输出是:
pin 38 (44e10898.0) 00000027 pinctrl-single
Run Code Online (Sandbox Code Playgroud)
可以做些什么?
注意:没有/sys/devices/bone_capemgr.*,因为这不是Angstrom.典型的DTO方法通过修改开普管理器来导出更改.这不是一个选择.
编辑:经过tad思考,我做了:
dtc -I dtb -O dts -o ~/am335x-boneblack.dts /boot/dtb-3.17.7-300.fc21.armv7hl/am335x-boneblack.dtb.我编辑了这个文件:
...
pinmux@44e10800 {
...
example {
pinctrl-single,pins = <0x898 0x27>;
};
};
...
Run Code Online (Sandbox Code Playgroud)
然后,我再次编译它dtc,插入/boot/dtb-3.17.7-300.fc21.armv7hl/并重新启动.然而,没有任何改变.发生了什么?
编辑:
正如Charles Steinkuehler所指出的那样,0x800需要从偏移量中减去,而"某些东西"需要引用"示例".
如果我添加0x098 0x27到我的条目中user_leds_s0,则会观察到所需的行为:
...
user_leds_s0 {
pinctrl-single,pins = <0x54 0x7 0x58 0x17 …Run Code Online (Sandbox Code Playgroud) 我在Windows环境的编程方面有一些经验,但我需要在BeagleBone Black上开发一个"Kiosk"(我听说这是正确的名称).我是Linux的新手,也是我将要使用的工具的新手.直到最近几个月,我一起开发VB6并且C++Builder只开发了.
现在我有Eclipse,MinGW并wxWidgets在我的Windowns 7 64位PC和BeagleBone Black上启动Debian 7.8 LXDE.
我需要设置一个工具链来编译BeagleBone Black.我非常努力地读了至少一百页,但我还是没弄明白.
从本网站我了解到可以从Windows编译Linux,这可能是完美的解决方案.如果不可能的话,我已经有一台运行Ubuntu的虚拟机(但我可以根据需要更改)准备好Eclipse和其他东西安装.
我仍然对使用/构建的工具链感到迷茫.这个网站似乎已经建立了一个工具链,但是没有任何迹象表明从哪里开始.我知道我现在应该wxWidgets使用这些工具编译,但我不确定,而且我也不想弄乱我在Windows中当前的工作设置,因为我错过了一个开关或路径.
我看到这个问题是多次被问到的,但我找不到一个最新的问题,所以我再问一遍.
如何使用工具链来编译GUI应用程序,从Windows使用Eclipse,MinGW以及wxWidget运行Debian的BeagleBone Black和LXDE?
我有一个a.out,我想我的时候运行BeagleBone开机.它实际上是一个套接字服务器,我想在BeagleBone启动时立即启动它.我试着把它放进去/etc/init.d,但它没有帮助.我写了一个shell脚本来运行这个可执行文件,但即使这样也无济于事.
如何在脚本启动后立即运行脚本,我该怎么办?
我想在从机模式下使用Beagle Bone Black上的I2C总线.通过搜索,随机帖子的评论部分会提出问题,但从未回答是否可能.
它似乎使用从属模式I2C并不是Linux中的常见需求,但我在Android版本中找到了这个示例:https://android.googlesource.com/kernel/tegra/+/android-tegra-flounder-3.10-lollipop -release/drivers/i2c/i2c-slave.c和linux kernal网站上的这个文件:https://www.kernel.org/doc/Documentation/i2c/slave-interface.
我正在使用Debian Wheezy发行版,但无法在Linux内核文档中引用的Android文件或i2c-slave-eeprom驱动程序中找到引用.我只是使用太旧的内核吗?如何生成从模式驱动程序?
这个网站说...
要将这些图像转换为eMMC闪存图像,请编辑microSD卡上Linux分区上的/boot/uEnv.txt文件,并使用'cmdline = init =/opt/scripts/tools/eMMC /删除行上的'#' init-eMMC-flasher-v3.sh".启用此功能将导致启动microSD卡以刷新eMMC.
uEnv.txt文件中不存在此类行.我也没有init-eMMC-flasher-v3.sh在启动分区的任何地方看到该文件,尽管它可能位于隐藏分区上(至少隐藏在Windows中).
我试过拿着S2(这似乎是一个较旧的(可能是?)闪烁方法)没有成功.
我想模仿BeagleBone Black.似乎QEMU是唯一支持ARM的Linux仿真的仿真器.但是我很难获得正确的模拟器.
我尝试使用qemu.org中的QEMU构建但似乎不支持机器"beagle"(也来自"qemu-system-arm -machine help"的输出并不是最小的beagle作为支持的机器).我发现一些帖子说Linaro有一个支持BeagleBone的qemu版本,并且可以在Ubuntu上使用apt-get安装它.还有一个youtube视频,其中包含说明:
https://www.youtube.com/watch?v=__6XmxOrL3o
然而,似乎指令不再有效.我有Ubuntu 14.04.我尝试了以下方法:
1)sudo add-apt-repository ppa:linaro-maintainers/tools
这超时并报告错误的PPA格式错误.
2)然后我按照这里的说明:
https://wiki.linaro.org/Platform/Systems/Repository
但是,添加这些存储库后,没有添加qemu,所以在我的apt存储库中,我只有来自qemu.org的qemu(不支持beaglebone)
3)然后我找到了这个页面:
https://launchpad.net/~linaro-maintainers/+archive/ubuntu/tools
所以我尝试了以下内容:
sudo add-apt-repository http://ppa.launchpad.net/linaro-maintainers/tools/ubuntu
然后还使用"sudo apt-key add"命令下载并添加了公钥.
这似乎是在做了"sudo apt-get update"和"apt-cache show qemu-system"之后我看到了以下内容:
包:qemu-system来源:qemu-linaro版本:2.2.0~rc3 + git8 + gdb12451-63linaro + trusty架构:amd64维护者:Ubuntu开发人员安装大小:133812取决于:qemu-linaro-keymaps,libasound2(> = 1.0 .16),libbluetooth3(> = 4.91),libbrlapi0.6,libc6(> = 2.15),libcurl3-gnutls(> = 7.16.3),libfdt1,libgcc1(> = 1:4.7),libgl1-mesa-glx | libgl1,libglib2.0-0(> = 2.24.0),libgnutls26(> = 2.12.17-0),libncurses5(> = 5.5-5~),libpixman-1-0(> = 0.15.16),libpng12 -0(> = 1.2.13-4),libpulse0(> = 1:0.99.1),libsasl2-2(> = 2.1.24),libsdl1.2debian(> = 1.2.11),libstdc ++ 6( > = 4.6),libtinfo5,libuuid1(> = 2.16),libvdeplug2,libx11-6,zlib1g(> = 1:1.2.0)建议:samba Breaks:qemu(<< 0.11.0-2),qemu-kvm-临时演员(<< 0.13.50-2011.02-0~rc1-0ubuntu1)取代:qemu(<< 0.11.0-2),qemu-kvm-extras(<< 0.13.50-2011.02-0~rc1-0ubuntu1) …
我成功地对在 Beaglebone black 上运行的 Nodejs 应用程序进行了 docker 化。但现在我想从 docker 容器内访问 CAN,但它不起作用。
\n请注意,我成功地在主机中配置了 CAN 端口,并且 candump 显示它可以工作。
\n$ candump can1\n can1 18FF30D0 [8] 00 00 00 00 00 00 00 00\n can1 18FF02D0 [4] 00 00 00 00\n can1 18FF21D0 [3] 00 00 00\n can1 18FF3CD0 [4] 00 7D 28 7D\n can1 18FF30D0 [8] 00 03 00 00 00 00 00 00\n can1 18FF02D0 [4] 00 00 00 00\nRun Code Online (Sandbox Code Playgroud)\n我在 Dockerfile 中构建了 socketcan 节点模块,如下所示:
\n #If you don't …Run Code Online (Sandbox Code Playgroud)