- 博客(75)
- 资源 (3)
- 问答 (2)
- 收藏
- 关注
原创 ROS2导航运行TurtleBot模拟器报错
ROS 导航模拟器运行报错 [controller_server-8] [INFO] [local_costmap.local_costmap]: Timed out waiting for transform from base_link to odom to become available, tf error: Invalid frame ID "odom" passed to canTransform argument target_frame - frame does not exist
2022-08-21 12:22:21 2816 1
原创 setjmp, longjmp使用不当引起崩溃
setjmp 将CPU核中的一组寄存器保存在一块jmp_buf中,要注意它不保存局部变量,当函数调用过深时发生错误,可以用longjmp跨越式跳回当初setjmp的地方,根据setjmp的返回值,可以判断是首次调用setjmp,还是从longjmp返回。setjmp和longjmp的使用要处于链式调用关系的函数中, 如果是在平级函数中,由于栈帧被后面的函数复用,再跳转回来时,局部变量失效,导致各种各样的异常。libpng库里使用了大量setjmp, longjmp处理异常, 某业务层在使用这些函数时
2022-01-08 10:29:44 549
原创 Android JNI 记
局部和全局引用多数JNI函数返回局部引用, 用(*env)->NewGlobalRef(env, xxx) 创建全局引用,(*env)->DeleteGlobalRef(env, xxx)销毁全局引用。创建弱引用, (*env)->NewWeakGlobalRef(env, xxx)判断弱引用有效: JNI_FALSE == (*env)->IsSampleObject(env, weakRef, NULL)线程同步java中按对象进行同步synchr
2021-08-07 11:44:55 115
原创 gcc优化对static函数调用的处理
最近追查一个崩溃问题,反汇编根据调用栈一层层查找,到了某一函数后竞找不到对应代码行,后进入其调用的某一个函数才将其调用顺序串起来。由此做了一个实验,从汇编层面看看编译器如何处理。...
2021-06-13 14:35:32 753 1
原创 加快IOT设备连接WIFI的速度
连接WIFI的主要步骤为 扫描(信道)、认证、关联、DHCP, 有些使用LWIP协议栈的还可能有一个检测IP冲突的操作。扫描阶段可以在第一次搜索到之后 将信道 记录下来,下次启动优先扫描此信道。 此方法对于一些频繁自动切换信道的路由器来说达不到好的效果。认证阶段,小型设备在此阶段根据密码加上WIFI名 计算得到PMK(pairwise master key), 耗时较多,可提前计算并存储,以便下次使用;DHCP阶段有条件的可以考虑使用静态IP。有些LWIP协议栈,在申请到IP后,会检测是否有
2021-04-10 21:14:35 237
原创 安卓 毫秒级时间显示APK
最近需要测试点播延时,发现网上的不少定时器刷新精度不够,有不少网页计时器不少是40多毫秒才刷新一次时间。写了个简单的APK, 60Hz屏幕上,基本做到16ms刷新一次。编译好的APK:https://download.csdn.net/download/konga/15988270主要代码: private static String TAG = "MainActivity"; private TextView timeView; @Override pr.
2021-03-20 18:00:33 2007 1
原创 Network code notes
UDP报文接收BUF长度小于实际报文长度,剩余的会被丢弃。发送广播时需要设置: int option = 1; setsockopt(fd, SOL_SOCKET, SO_BROADCAST, &option, sizeof(option));接收组播时需要加入组: /* join ipv4 group */ struct ip_mreq mreq...
2020-03-08 23:02:35 214
原创 ARM同步原语 摘要
http://infocenter.arm.com/help/topic/com.arm.doc.dht0008a/DHT0008A_arm_synchronization_primitives.pdf一、软件同步当访问共享资源必须限制同一时间只能有一个Agent时,软件必须进行同步。共享资源: 共享内存、外设Agent: 处理器、进程、线程通过对表示共享资源的状态...
2019-12-08 18:48:48 448
原创 读文件时收到信号,read函数部分成功
#include <stdio.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <errno.h>#include <signal.h>#define BUF_SI...
2019-10-23 00:06:13 246
原创 VLC点播RTSP问题处理
HISI的参考RTSP Server.VLC 2.x版本点播私有RTSP服务, 可正常出图像;VLC 3.x版本点播RTSP服务, 三秒后停止;抓包看VLC3.x 的RTSP会话过程,PLAY方法后不久,VLC发送了GET_PARAMETERS请求,然后服务端就断开了。与VLC2.x版本的正常RTSP点播对比, 正是多了一个GET_PARAMETERS操作;对服务...
2019-05-26 22:56:21 1128
原创 eclipse中配置javap
Run -> External Tools -> External Tools ConfigurationsLocation: javap.exe 绝对路径Working Directory: ${workspace_loc}/${project_name}Arguments:-classpath bin -c ${java_type_name}...
2019-04-27 23:14:20 321
原创 Cache的clean和invalidate操作
用某ARM芯片做硬件逻辑解压缩,从其开源的Uboot里取出解压缩代码,拿到LiteOS里面使用。先从Flash读取压缩文件到内存, 申请一块足够大的目标Buffer, 将两块内存交给解压硬件逻辑,有低概率解失败;。。。在读取flash上的压缩数据到内存后,将这段存放压缩数据的内存进行clean cache操作,没有复现此问题。原因应该是解压缩逻辑没有使用Cache里的内容, ...
2019-04-03 23:25:11 14247
原创 向Android项目添加系统库和外部预编译ffmpeg库
项目添加 C 和 C++ 代码,官网参考文档。https://developer.android.google.cn/studio/projects/add-native-codeapp/build.gradle添加abiFilters defaultConfig { ... externalNativeBuild { cma...
2018-12-08 09:51:10 299
原创 编译Android 8.1 并刷入Nexus 6P
-----------------AOSP Android源码----------------源码下载:https://lug.ustc.edu.cn/wiki/mirrors/help/aospcd ~/bin#curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repocurl -sSL ...
2018-12-04 13:01:20 2227
原创 Android NDK 随记
jni规范: https://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/jniTOC.htmlNDK文档:https://developer.android.google.cn/ndk/guides/NDK参考:https://developer.android.google.cn/ndk/reference/N...
2018-11-25 21:55:23 172
原创 ARM架构、汇编摘要
架构:处理器通用行为特性处理器: 实现了某种架构,可以集成到不同的设计中设备:包含处理器和额外组件ARM架构包括: 编程模型 指令集 系统配置 异常处理 存储模型一个处理器可以实现不同的内存管理模型: VMSA(Virtual Memory System Architecture), 基于MMU(Memory Management Un...
2018-11-25 21:54:07 665
原创 minix文件系统格式分析
参考https://www.zybuluo.com/harpsword/note/207478https://blog.csdn.net/hejinjing_tom_com/article/details/52319189http://www.cnblogs.com/zhangchaoyang/articles/1896605.htmlhttps://www.cnblogs.com/codes...
2018-11-19 08:15:58 1331
原创 一次LiteOS运行时崩溃的解决
现象:运行时崩溃 ,根据打印的寄存器信息,回溯到 malloc->LOS_MemAlloc()函数, 线程栈信息 水线显示将要溢出; 多次测试发现不止一个在线程和函数里崩溃 ,栈信息看起来要溢出, 栈回溯都是指向malloc函数。 过程:liteos目录有 osShellCmdMemCheck函数, 将会检查 malloc内部堆结点的一致性,不一致将会打印异常; ...
2018-11-17 23:34:31 1043
原创 树莓派做二级路由抓包
一、刷open wrt (LEDE)镜像1. 树莓派3B LEDE镜像下载https://openwrt.org/toh/views/toh_fwdownloadRaspberry Pi 3BCPU: Broadcom BCM2837Target: brcm2708SubTarget: bcm27102. 在Linux下使用dd把解压后的镜像写入SD卡设备/...
2018-07-23 00:18:05 2289 1
原创 基于QEMU搭建完整的虚拟ARM开发环境(uboot+linux+rootfs)
主机环境:ubuntu 16.04虚拟机,目标机器:QEMU模拟vexpress-a9。------------------------------------------------一、准备工作安装qemu, 交叉编译工具等略过。konga@ubuntu:~/work/vexpress/uboot$ qemu-system-arm -M ?Supported machines are:……ve...
2018-03-17 20:02:11 7432
原创 一次踩内存事件
做各个模块集成,其中包含了文件管理、录像业务相关的库。背景:在文件管理初始化时,应用层会指定数据根目录。 测试发现在执行特定操作时,目录失效,无法创建文件,日志大概这样 (NULL) /Movie/xxxx.MP4,好像是指定的根目录变空了。 检查一番, 没有进行去初始化, 跟文件管理库负责同事远程沟通了下,他在库里维护了一个指针,指向 应用 层设置的 目录字符串(这个方法当然不...
2017-04-25 23:46:45 3140 1
原创 Android logcat信息记录到手机文件
添加权限: 示例代码:public class MyApp extends Application { private Process mLogProcess; @Override public void onCreate() { super.onCreate(); try { int
2017-04-16 18:46:00 2303
原创 sigaction检测段错误示例
#include #include #include #include #include #include #include #define ARRAY_SIZE(a) sizeof(a)/sizeof(a[0])#define DEBUG#ifdef DEBUG #define LOG(fmt,args...) printf("%s():%d " fmt, __FUNC
2017-03-12 17:30:56 811
原创 Linux下安装C++手册
GNU GCC 提供了一份关于 MAN 格式的C++ 标准库的文档,可以在其镜像点(http://gcc.gnu.org/mirrors.html ) 中下载。具体的路径是:libstdc++/doxygen/libstdc++-man-xxxxxx.tar.bz2,可找一个最新日期的下载。 1. 下载C++文档压缩包 ftp://ftp.mirrorservice.org
2017-03-10 22:48:56 1482
原创 ffmpeg命令: 删除视频中不需要的音频流
konga@ubuntu:~/work$ ffprobe gf.mkv Input #0, matroska,webm, from 'gf.mkv': Metadata: encoder : libebml v1.3.0 + libmatroska v1.4.0 creation_time : 2014-11-22 12:29:18 Dur
2017-01-15 14:50:07 16193 2
原创 记录几次内存泄露问题
一、 2014年底,我们的Android客户端在长时间操作后会发生内存不够而崩溃,还好安卓平台有一个强大的堆内存查看工具,如下图:然后开着这个,不断操作客户端的各个功能,直到发现一进入文件浏览界面(要显示缩略图),堆中75K左右的对象数量就会上涨,而且降不下来,后来拿着缩略图宽高计算了下,一个Bitmap占用空间差不多就是75KB,那基本上就可以确定是缩略图了,经过检查最终发现是bit
2016-10-06 14:35:30 659
原创 Android Acivity LaunchMode 总结
Activity LaunchMode: standard: 标准(默认), 可能启动多个实例; singleTop: 已经Activity已经在栈顶,则使用当前的实例(需处理onNewIntent), 如果不是Activity栈顶,则启动新实例; singleTask: 应用程序上下文中只一个实例,如果不在栈顶,将其上的Acitivty全部出栈;
2016-10-02 12:48:03 419
转载 Android 中 Canvas 绘图之 PorterDuffXfermode 使用及工作原理详解
http://android.jobbole.com/83948/
2016-07-23 23:02:26 444
转载 weightSum 和 layout_weight 以及 为什么有时要设置0dp
线性布局(水平为例)的weightSum 定义子控件weight的最大值, 如果未指定,则等于 所有子视图的 layout_weight累加和。子视图的layout_weight 占用父视图的空间比重。一个线性布局的子视图真正宽度计算: 子视图自身的宽度 + 自身比重 / 总比重 * 父视图的宽度为什么在设置了layout_weigth后,开发环境会
2015-07-19 16:53:39 1267
如何在源码级合并两个独立的APK
2015-05-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人