![]() 1. 在处理yolov5输出数据时,替换了使用memcpy进行内存复制的操作,直接使用原数据进行赋值,减少了内存复制的开销。 2. 在处理完数据后,将ncnn::Mat的data指针设置为nullptr,避免了原数据在ncnn::Mat析构时被释放导致的内存访问异常。这一改动确保了数据的稳定性和安全性。 |
||
---|---|---|
.idea | ||
cmake | ||
doc | ||
libapi | ||
ss928sdk | ||
svp | ||
thridpart/ncnn | ||
.gitignore | ||
build.sh | ||
CMakeLists.txt | ||
LICENSE | ||
Readme.md |
wsl环境
1. 安装wsl
ubuntu版本必须为18.04。 windows打开powershell 输入以下命令,不要使用cmd
wsl --install -d Ubuntu-18.04
安装参考地址:https://learn.microsoft.com/zh-cn/windows/wsl/install
2.正常安装928的开发环境,参考指南。
3.修改目录
3.1 交叉编译工具
修改cmake/ss298.cmake
目录交叉编译工具路径
SET(CMAKE_C_COMPILER /opt/linux/x86-arm/aarch64-mix210-linux/bin/aarch64-mix210-linux-gcc)
SET(CMAKE_CXX_COMPILER /opt/linux/x86-arm/aarch64-mix210-linux/bin/aarch64-mix210-linux-g++)
SET(CMAKE_STRIP /opt/linux/x86-arm/aarch64-mix210-linux/bin/aarch64-mix210-linux-strip)
3.2 修改CMakeLists.txt
把全部的/home/setups/ss928_framework/
替换为自己wsl项目目录,比如/mnt/d/ss928_framework/
4. 把虚拟机中相关目录拷贝wsl中同样的目录下
需要复制的目录为
- /usr/local/lib
- /usr/local/local
注意!!!, 注意!!!, 注意!!!,
_.--""--._
.' `.
/ O O \
| \ ^^ / |
\ `----' /
`. _______ .'
//_____\\
(( ____ ))
`------'
复制粘贴- /usr/local/lib
和/usr/local/local
先打成压缩包,再解压到wsl目录中,直接从虚拟机中复制出来的时候会报错不支持符号链接的主机,无法复制。
压缩并保持符号链接
cd /usr/local/lib
zip -ry ~/lib.zip ./*
cd /usr/local/include
zip -ry ~/include.zip ./*
- -r 这个选项表示递归地处理目录
- -y 保持符合链接
自行放到wsl任意目录,cd进入该目录解压。如需强制覆盖,加上-o参数
sudo unzip lib.zip -d /usr/local/lib/
sudo unzip include.zip -d /usr/local/include/
把板子上相关目录拷贝wsl中同样的目录下
需要复制到目录为
- /lib/aarch64-linux-gnu
- /usr/lib/aarch64-linux-gnu
cd /lib/aarch64-linux-gnu
zip -ry ~/lib_agnu.zip ./*
cd /usr/lib/aarch64-linux-gnu
zip -ry ~/usr_lib_agnu.zip ./*
自行放到wsl任意目录,cd进入该目录解压。如需强制覆盖,加上-o参数
sudo unzip lib_agnu.zip -d /lib/aarch64-linux-gnu/
sudo unzip usr_lib_agnu.zip -d /usr/lib/aarch64-linux-gnu/
cmake3.24版本
下载地址:https://cmake.org/files/v3.24/cmake-3.24.0-linux-aarch64.tar.gz 解压后的bin目录为可执行文件,自行放到目录中。
5.编译
mkdir build
cd build
cmake ..
make -j(nproc)
build/libss928driver.so
为生成的动态库文件