当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]继上次生成了ARM架构的链接库之后,我们要把他们拷贝到装载有文件系统的SD卡中即可,在拷贝时,最好是/usr/lib下实践一:将那些lib拷贝到U盘里面,因为之前跑过demo,里面就

继上次生成了ARM架构的链接库之后,我们要把他们拷贝到装载有文件系统的SD卡中即可,在拷贝时,最好是/usr/lib下

实践一:将那些lib拷贝到U盘里面,因为之前跑过demo,里面就是一个简易的linux系统,就暂且用他试试了,正常启动后,挂载U盘,这些在之前都有做过,mount /dev/sda1 /mnt拷贝文件夹 cp -R /mnt/lib /usr/ 结果出现

 


提示空间不足,仔细发现问题,发现这个ramdisk镜像最大只能有8M,而整个lib有10.3M,肯定会提示空间不足了,在看看/usr/lib下有哪些文件

 


发现拷贝了一些lib文件进来。这时就想到了实践二的方法、。

疑问:然后还有一个就是书上的一句话,如果你使用的是ramdisk文件系统,则需要在拷贝完Opencv链接库之后需要重新压缩出一个镜像文件。(有待解决这个问题)

问题解释:来自于rainysky,用的系统是SD自带的那个精简版的系统,容量比较小,没法直接将编译的文件复制到里面,只能做一个镜像啦。

实践二:想利用单板机(光盘中第九章有)中的文件来实验一下,单板机的系统时linaro的系统,之前有一个sd卡已经做好了分区,在windows下只能读出第一个分区,第二个分区在windows下是读不出来的。将BOOT.BIN,zImage,devicetree.dtb,zynq-zed-adv7511.dtb拷贝到第一个分区,也就是FAT分区。将ubuntu-image.tar.gz在linux下拷贝到EXT4分区,但是结果发现这个系统时不能正常启动的,是否是因为需要PC的外设才能正常启动??(有待验证),现在只能是制作镜像了。原来是光盘提供的BOOT.BIN文件有问题,有待实验。

实践三:

制作镜像的方法:OpenCV库:

dd if=/dev/zero of=qt_lib.img bs=1M count=80//这里的count与bs组合起来表示制作80M的镜像,具体可以根据实际链接库总的大小来设置count

mkfs.ext2 -F cv_lib.img

chmod go+w cv_lib.img

mount cv_lib.img -o loop /mnt

//cp -rf $ZYNQ_QT_INSTALL/* /mnt (看你的安装的路径,我的是下面的)

cp –rf /home/xzy/Opencv2.3.1/install/* /mnt

chmod go-w cv_lib.imgumount /mntZedboard

测试注意交叉编辑器编译代码时要用-I 和-L来指定链接库的位置。等下帖过来

arm-xilinx-linux-gnueabi-g++ -I /home/xzy/OpenCV-2.3.1/install/include -I/home/xzy/OpenCV-2.3.1/install/include/opencv -L /home/xzy/OpenCV-2.3.1/install/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann ./edge_detecTIon.cpp -o ./edge_detecTIon.o

这里使用的是书上的edge_detecTIon.cpp。

直接将库文件拷贝到sd卡就可以了,然后sd卡启动linux之后,进行如下操作:

mount /dev/mmcblk0p1 /mnt/ //挂载sd卡其他部分的东西,

ls可以看到镜像文件

mount /mnt/cv_lib.img /choose/a/directory/to/mount//接着下来设置动态链接库的路径,即LD_LIBRARY_PATH环境变量export LD_LIBRARY_PATH=/usr/lib 如果是这个路径(/usr/lib)就不用了,会自己搜索。

前面都设置好了,运行的时候结果出现error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory,经查证,如果用这个镜像运行的话,会出现一个问题,就是在运行的时候找不到stdc++.so这个库,因此需要先将这个库copy到/home/xzy/opencv-2.3.1/install/lib,源文件在交叉编译器里面,总的命令为:cp /root/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/arm-xilinx-linux-gnueabi/libc/usr/lib/libstdc++.so* /home/xzy/opencv-2.3.1/install/lib)

然后重新制作镜像文件。至此名字叫opencv_lib.img,或者将这个库挂载到/usr/lib目录下也是可以的。我这里重新制作镜像文件,搞定之后,挂载,运行./edge_detecTIon_arm lena.jpg lena_edge.jpg结果出现的是Segmentation fault,怀疑是图片格式的问题,果然,换成了bmp图像以后,./edge_detection.o ./lena.bmp ./lena_edge.bmp,出现的是sucessful,我就知道成功了,将生成的图片copy到U盘,到pc机上一看 至此,opencv移植到zedboard上是成功了。

 


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭