1 2 3 4 5 6 7 8 9 10 11 12 13 | odp_init_t init_param; odp_init_param_init(&init_param); init_param.not_used.feat.ipsec = 1; init_param.not_used.feat.crypto = 1; init_param.not_used.feat.compress = 1; init_param.not_used.feat.tm = 1; if (0 != odp_init_global(&instance, &init_param, NULL)) { DBG(("init odp global failed.\n")); return 0; } |
5G备忘录
EPS中的PDN连接(搜不到原贴地址)
https://www.txrjy.com/thread-1134059-1-1.html
LTE基础知识概述
https://max.book118.com/html/2016/0706/47457520.shtm
MR数据应用
https://www.txrjy.com/thread-926805-1-1.html
LTEMR分析经验共享
https://www.docin.com/p-1543277673.html
FDD LTE无线网PCI和TA的设计
https://wenku.baidu.com/view/3a6903712e3f5727a5e96299.html
5G系统——5G QoS
https://blog.csdn.net/u010178611/article/details/81746532
5G边缘计算之会话及业务连续性(SSC)介绍
https://blog.csdn.net/openinfra/article/details/109812315
https://www.toutiao.com/article/7098596919232102949
Terms,
1 2 3 | Turbo码 LDPC码 Polar code极化码,Erdal Arıkan |
OpenCV备忘录
mat的遍历方法
refer to: https://blog.csdn.net/koibiki/article/details/85954121
如何使用opencv给视频添加水印并保存
refer to: https://blog.csdn.net/weixin_44903147/article/details/102969715
bool solvePnP(InputArray objectPoints, InputArray imagePoints, InputArray cameraMatrix, InputArray distCoeffs, OutputArray rvec, OutputArray tvec, bool useExtrinsicGuess=false, int flags=ITERATIVE )
objectPoints为特征点的世界坐标,特征点通常为4个,坐标值需为float型,不能为double型,可以输入mat类型,也可以直接输入vector
imagePoints为特征点在图像中的坐标,需要与前面的输入一一对应。同样可以输入mat类型,也可以直接输入vector
cameraMatrix为相机内参数矩阵,大小为3×3。事先通过OpenCV自带例程求出相机标定参数。
distCoeffs输入为相机的畸变参数,为1×5的矩阵。事先通过OpenCV自带例程求出相机标定参数。
rvec输出解得的旋转向量。
tvec输出平移向量。
useExtrinsicGuess为true后似乎会对输出进行优化。
flags:
CV_ITERATIVE,默认值,它通过迭代求出重投影误差最小的解作为问题的最优解。
CV_P3P则是使用非常经典的Gao的P3P问题求解算法。
CV_EPNP使用文章《EPnP: Efficient Perspective-n-Point Camera Pose Estimation》中的方法求解。
//最小二乘法,解A*X=B中的X bool cv::solve(InputArray A, InputArray B, OutputArray X, int flags = DECOMP_LU)
refer to:
https://www.cnblogs.com/singlex/p/pose_estimation_1.html
https://www.csdn.net/tags/NtTakgysNTA0NDQtYmxvZwO0O0OO0O0O.html
vmware linux共享文件夹未启动
1 2 3 | sudo dnf install open-vm-tools-desktop umount /mnt/hgfs sudo /usr/bin/vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid=1000 -o gid=1000 -o umask=022 |
如果还不行,比如更新内核后,就要重新安装open-vm-tools。
refer to:
https://blog.csdn.net/xcyja/article/details/117328301
Windows平台下新的文件才拷贝
Linux下的cp -u能实现只在源文件比目标文件新时才拷贝,但此命令在MinGW下不好使,我通过在网上查方法,写了以下同样功能的脚本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | clearBinary() { local destDir=$1 local fileName=$2 local ext=$3 rm "${destDir}/${fileName}.${ext}" 1>/dev/null 2>&1 for ((j = 1; j <= 20; j++)); do if [ -f "${destDir}/${fileName}_$j.${ext}" ] ; then rm "${destDir}/${fileName}_$j.${ext}" fi done for ((j = 1; j <= 20; j++)); do if [ -f "${destDir}/${fileName}.${ext}" ] ; then mv "${destDir}/${fileName}.${ext}" "${destDir}/${fileName}_$j.${ext}" fi done } copyFile() { local srcDir=$1 local destDir=$2 local fileName=$3 local ext=$4 local srcPath=${srcDir}/${fileName}.${ext} local destPath=${destDir}/${fileName}.${ext} if [ ! -f "${srcPath}" ] ; then return fi local timeFrom=`stat -c %Y "${srcPath}"` local timeTo=`stat -c %Y "${destPath}"` if [ "$timeFrom" = "$timeTo" -a "x$forceReplace" != "xforce" ]; then return fi clearBinary "${destDir}" ${fileName} ${ext} cp "${srcPath}" "${destPath}" local timeFromStr=`date -d "@$timeFrom" "+%Y-%m-%d %H:%M:%S"` touch -m -d "$timeFromStr" "${destPath}" echo "[${srcPath}]->[${destPath}] copied." } copyFile /e/source /c/dest hello docx |
EuhatGift发布
我写的一个开源的工具库,地址:https://github.com/euhat/EuhatGift
现在包含功能:
- Boost库里的json文件操作接口非常适合于写业务代码,但该库会把数字写成数字字符串,这是有问题的。再考虑性能及各种语言编码的兼容性,我写了一个cJSON库的c++包装类,接口类似于Boost,名叫CjsonWrapper。
- Windows的GetPrivateProfileStringA函数要预定义接收值的Buffer大小,这是有缺点的,这会造成我们读取的值可能只读了一半我们却没有办法。我于是重写了ini操作相关的函数库,名叫IniOp,C语言风格,跨平台。
gtk user control自绘控件
ubuntu下gtk库是默认已安装的,开发部署很方便,以下是我写的自绘控件例子:
EuhatChildWnd.h
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #pragma once struct _cairo_surface; struct _GtkWidget; class EuhatChildWnd { public: EuhatChildWnd(int width, int height); ~EuhatChildWnd(); void clear(); void drawBrush(struct _GtkWidget *widget, double x, double y); struct _GtkWidget *drawingArea_; struct _cairo_surface *surface_; double xFrom_; double yFrom_; }; |
ntoskrnl.ExiAcquireFastMutex HAL.dll
在32位Win7操作系统里,运行引用我们编的动态库的应用程序,报如下错误:
无法定位程序输入点 ntoskrnl.ExiAcquireFastMutex 于动态链接库 HAL.dll 上。
用Dependency Walker查看我们编的动态库,发现引用了ntoskrnl.exe,猜测在旧有的32位win32环境中是不会从dll中去引用别的exe的。只有在64位win32环境中才会存在从dll中去引用ntoskrnl.exe。
32位动态库编译的解决办法:
链接器->输入->附加依赖项去除ucrt.lib和wdm.lib。
链接器->输入->忽略所有默认库设为否。
链接器->高级->入口点清空。
cmd /c program
正确语法如下
1 | cmd /c ""c:\Program Files\aa.exe" > d:\aa.txt 2>&1" |
addr2line ??
gcc中加入编译选项
1 | g++ -g -Wl,-Map=test.map -no-pie -rdynamic ... |
内核设置如下
1 | echo 0 > /proc/sys/kernel/randomize_va_space |
addr2line
1 | addr2line -e ./test -Cif 0x401425 |