在NDK开发中经常会出现应用Crash的情况,而JNI层的报错信息,不像Java层报错信息那样可以直接在日志中看到错误的行数,JNI层中出现的错误直接看根本定位不到错误的位置。通常来说,JNI报的基本都是堆栈信息,需要NDK的一些工具进行地址转换,转换后即可看到错误的位置。addr2line就是这些地址转换的工具。一、环境配置1、工具路径 路径一般都在Sdk/ndk下工具选择 可以看到在toolchains下有多个选择,这应该是根据需要解析的so库类型进行选择,这里我选择了第一个。bin路径 配置环境变量 将上面的bin路径复制到环境变量中
在NDK开发中经常会出现应用Crash的情况,而JNI层的报错信息,不像Java层报错信息那样可以直接在日志中看到错误的行数,JNI层中出现的错误直接看根本定位不到错误的位置。通常来说,JNI报的基本都是堆栈信息,需要NDK的一些工具进行地址转换,转换后即可看到错误的位置。addr2line就是这些地址转换的工具。一、环境配置1、工具路径 路径一般都在Sdk/ndk下工具选择 可以看到在toolchains下有多个选择,这应该是根据需要解析的so库类型进行选择,这里我选择了第一个。bin路径 配置环境变量 将上面的bin路径复制到环境变量中
STM32内存结构介绍和FreeRTOS内存分配技巧这是我第一次使用FreeRTOS构建STM32的项目,踩了好些坑,又发现了我缺乏对于操作系统的内存及其空间的分配的知识,故写下文档记录学习成果。文章最后要解决的问题是,如何恰当地分配FreeRTOS中的堆、任务栈的空间。但是在概念的理解上,也需要知道STM32内存的相关知识。所以首先大致介绍一下STM32的内存结构。STM32内存结构STM32的数据在物理上分别储存在RAM和Flash中。RAM可读可写,掉电清零。Flash可读可写,但是读写时间很长,能掉电储存,并且一般空间比RAM大很多。在关于如何使用RAM和Flash的问题上,STM32
STM32内存结构介绍和FreeRTOS内存分配技巧这是我第一次使用FreeRTOS构建STM32的项目,踩了好些坑,又发现了我缺乏对于操作系统的内存及其空间的分配的知识,故写下文档记录学习成果。文章最后要解决的问题是,如何恰当地分配FreeRTOS中的堆、任务栈的空间。但是在概念的理解上,也需要知道STM32内存的相关知识。所以首先大致介绍一下STM32的内存结构。STM32内存结构STM32的数据在物理上分别储存在RAM和Flash中。RAM可读可写,掉电清零。Flash可读可写,但是读写时间很长,能掉电储存,并且一般空间比RAM大很多。在关于如何使用RAM和Flash的问题上,STM32
SVGSVG直线-元素是用来创建一个直线:下面是SVG代码:实例 style="stroke:rgb(255,0,0);stroke-width:2"/>尝试一下»对于Opera用户:查看SVG文件右键单击SVG图形预览源)。x1属性在x轴定义线条的开始y1属性在y轴定义线条的开始x2属性在x轴定义线条的结束y2属性在y轴定义线条的结束
SVGSVG直线-元素是用来创建一个直线:下面是SVG代码:实例 style="stroke:rgb(255,0,0);stroke-width:2"/>尝试一下»对于Opera用户:查看SVG文件右键单击SVG图形预览源)。x1属性在x轴定义线条的开始y1属性在y轴定义线条的开始x2属性在x轴定义线条的结束y2属性在y轴定义线条的结束
Memcachedstatssizes命令Memcachedstatssizes命令用于显示所有item的大小和个数。该信息返回两列,第一列是item的大小,第二列是item的个数。语法:statssizes命令的基本语法格式如下:statssizes实例statssizesSTAT961END
Memcachedstatssizes命令Memcachedstatssizes命令用于显示所有item的大小和个数。该信息返回两列,第一列是item的大小,第二列是item的个数。语法:statssizes命令的基本语法格式如下:statssizes实例statssizesSTAT961END
并查集size的优化按照上一小节的思路,我们把如下图所示的并查集,进行union(4,9)操作。合并操作后的结构为:可以发现,这个结构的树的层相对较高,若此时元素数量增多,这样产生的消耗就会相对较大。解决这个问题其实很简单,在进行具体指向操作的时候先进行判断,把元素少的集合根节点指向元素多的根节点,能更高概率的生成一个层数比较低的树。构造并查集的时候需要多一个参数,sz数组,sz[i]表示以i为根的集合中元素个数。//构造函数publicUnionFind3(intcount){ parent=newint[count]; sz=newint[count]; this.count=cou
并查集size的优化按照上一小节的思路,我们把如下图所示的并查集,进行union(4,9)操作。合并操作后的结构为:可以发现,这个结构的树的层相对较高,若此时元素数量增多,这样产生的消耗就会相对较大。解决这个问题其实很简单,在进行具体指向操作的时候先进行判断,把元素少的集合根节点指向元素多的根节点,能更高概率的生成一个层数比较低的树。构造并查集的时候需要多一个参数,sz数组,sz[i]表示以i为根的集合中元素个数。//构造函数publicUnionFind3(intcount){ parent=newint[count]; sz=newint[count]; this.count=cou