Android11 移植memtester压测内存

news2024/10/6 6:16:55

    需求如题,从网上下载了memtest源码压缩包,准备放到系统源码编译,然后push到板子上执行,结果,编译出来一堆问题,报build err。

    做如下代码改动:

 external/memtester-4.5.1/Android.mk  | 16 ++++++++++++++++
 external/memtester-4.5.1/memtester.c |  8 ++++----
 2 files changed, 20 insertions(+), 4 deletions(-)
 create mode 100644 external/memtester-4.5.1/Android.mk

diff --git a/external/memtester-4.5.1/Android.mk b/external/memtester-4.5.1/Android.mk
new file mode 100644
index 0000000000..86cf6d8935
--- /dev/null
+++ b/external/memtester-4.5.1/Android.mk
@@ -0,0 +1,16 @@
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := memtester.c tests.c
+
+LOCAL_MODULE := memtester
+
+LOCAL_CFLAGS += -Wall -Wno-unused-parameter
+
+LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
+
+
+LOCAL_C_INCLUDES := $(LOCAL_PATH)
+
+include $(BUILD_EXECUTABLE)
diff --git a/external/memtester-4.5.1/memtester.c b/external/memtester-4.5.1/memtester.c
index 44d331e2cf..e6d86635e2 100755
--- a/external/memtester-4.5.1/memtester.c
+++ b/external/memtester-4.5.1/memtester.c
@@ -117,7 +117,7 @@ int main(int argc, char **argv) {
     ulv *bufa, *bufb;
     int do_mlock = 1, done_mem = 0;
     int exit_code = 0;
-    int memfd, opt, memshift;
+    int memfd, opt, memshift = 0;
     size_t maxbytes = -1; /* addressable memory, in bytes */
     size_t maxmb = (maxbytes >> 20) + 1; /* addressable memory, in MB */
     /* Device to mmap memory from with -p, default is normal core */
@@ -139,7 +139,7 @@ int main(int argc, char **argv) {
     /* If MEMTESTER_TEST_MASK is set, we use its value as a mask of which
        tests we run.
      */
-    if (env_testmask = getenv("MEMTESTER_TEST_MASK")) {
+    if (env_testmask == getenv("MEMTESTER_TEST_MASK")) {
         errno = 0;
         testmask = strtoul(env_testmask, 0, 0);
         if (errno) {
@@ -310,7 +310,7 @@ int main(int argc, char **argv) {
             fflush(stdout);
             if ((size_t) buf % pagesize) {
                 /* printf("aligning to page -- was 0x%tx\n", buf); */
-                aligned = (void volatile *) ((size_t) buf & pagesizemask) + pagesize;
+                aligned = (void volatile *) (((size_t) buf & pagesizemask) + pagesize);
                 /* printf("  now 0x%tx -- lost %d bytes\n", aligned,
                  *      (size_t) aligned - (size_t) buf);
                  */
@@ -363,7 +363,7 @@ int main(int argc, char **argv) {
        define out the use of mlock() (cough HP/UX 10 cough). */
     if ((size_t) buf % pagesize) {
         /* printf("aligning to page -- was 0x%tx\n", buf); */
-        aligned = (void volatile *) ((size_t) buf & pagesizemask) + pagesize;
+        aligned = (void volatile *) (((size_t) buf & pagesizemask) + pagesize);
         /* printf("  now 0x%tx -- lost %d bytes\n", aligned,
          *      (size_t) aligned - (size_t) buf);
          */
-- 

编译好后push到android设备里面,测试前需先在android看里面设置环境变量

export MEMTESTER_TEST_MASK=0

执行memtester输出结果如下:

Mark。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1106041.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

绝地求生msvcp140.dll丢失的解决方法,教你轻松解决

在计算机的使用过程中,我们可能会遇到各种技术问题。其中,“msvcp140.dll丢失”是一个常见的错误提示。这个错误通常出现在运行某些程序或游戏时,表示找不到所需的DLL文件。本文将详细介绍五种解决此问题的有效方法。 方法一:重新…

java中关键字

主要是java开发面试或笔试中常见或者常考的关键字特性介绍 文章目录 类方法和变量修饰符final关键字abstract关键字static 关键字关于static执行顺序 implements 和 interface 关键字 类方法和变量修饰符 final关键字 用于声明不可变性,它可以应用于变量、方法和类…

浅谈云原生

目录 1. 云原生是什么? 2. 云原生四要素 2.1 微服务 2.2 容器化 2.3 DevOps 2.4 持续交付 3. 具体的云原生技术有哪些? 3.1 容器 (Containers) 3.2 微服务 (Microservices) 3.3 服务网格 (Service Meshes) 3.4 不可变基础设施 (Immutable Inf…

VUE:侧边弹出栏组件,组件中有树状图,搜索框可筛选树状图节点,可收缩

作者:CSDN @ _乐多_ 本文记录了一个侧边弹出栏组件代码。代码即插即用。 弹出栏中有树状图,搜索框,可收缩。 其中,搜索框可筛选树状图节点。点击右侧小按钮可以收缩弹出框,点击X号也可以收缩弹出框。 文章目录 一、组件代码代码依赖element-plus库。且需要下载几个svg图…

CNVD-2021-26422:亿邮电子邮件系统moni_detail.do远程命令执行漏洞复现 [附POC]

文章目录 亿邮电子邮件系统 moni_detail.do 远程命令执行 CNVD-2021-26422漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 亿邮电子邮件系统 moni_detail.do 远程命令执行 CNVD-2021-26422漏洞复…

TSINGSEE智慧港口可视化智能监管解决方案,助力港口码头高效监管

一、方案背景 全球经济一体化进程以及国际市场的不断融合,使得港口码头成为了大型货运周转中心,每天数以百计的大型货轮、数以千计的大型集装箱、数以万计的人员流动。港口作为货物、集装箱堆放及中转机构,具有昼夜不歇、天气多变、环境恶劣…

基于内存的分布式NoSQL数据库Redis(三)常用命令

文章目录 知识点07:String类型的常用命令知识点08:Hash类型的常用命令知识点09:List类型的常用命令知识点10:Set类型的常用命令知识点11:Zset类型的常用命令知识点12:BitMap类型的常用命令知识点13&#xf…

PMP考完后应该考什么?

PMP(项目管理专业)认证是全球范围内最受认可和尊重的项目管理资格证书之一。通过PMP考试的人已经展示了他们在项目管理领域的知识和技能。然而,项目管理是一个不断发展和变化的领域,持续学习和进一步提升自己的能力是非常重要的。…

【web前端】web前端设计入门到实战第一弹——html基础精华

前端 一:图片属性二:音频标签三: 视频标签四:链接标签五:列表标签5.1.无序列表5.2.有序列表3.自定义列表 六:表格6.1合并单元格 七:input标签八:select系列九: 文本域标签…

开发工具分享 - Mybatis SQL日志格式化H5

目录 一、 序言二、代码示例三、部署至Nginx 一、 序言 平时通过IDEA开发,可以直接装相关MybatisLogFormat的插件直接对控制台里的Mybatis SQL日志进行格式化。一旦离开本地环境,到了测试或者线上,就得自己手动拼参数了。 简单的SQL还好&am…

文件夹怎么隐藏?电脑重要文件夹隐藏的方法

对于存放了重要数据的文件夹来说,最关键的就是保护文件夹的数据安全,而隐藏就是常见的文件夹保护方法之一。那么,电脑重要文件夹该怎么隐藏呢?下面我们就一起来了解一下。 文件夹属性隐藏 在Windows系统中,提供了隐藏…

再见Jenkins!你好,GitLink引擎,更强大的自动化部署工具!

文章目录 写在前面一、准备工作1.1 注册GitLink账号1.2 托管项目1.3 新建项目管理引擎流水线 二、开始构建流水线2.1 进入图形流水线编辑页2.2 添加git clone节点2.3 添加shell节点2.4 添加allure html节点2.5 添加新建GitLink疑修节点2.6 添加钉钉通知节点2.7 设置任务触发器2…

网站如何才能不被黑,如何做好网络安全

当企业网站受到攻击时,首页文件可能被篡改,百度快照也可能被劫持并重定向到其他网站。首要任务是加强网站的安全防护。然而,许多企业缺乏建立完善的网站安全防护体系的知识。因此,需要专业的网站安全公司来提供相应的保护措施。今…

jquery.i18n.properties.js使用及seo优化

使用方法 具体使用方法可以参考jquery.i18n.properties的使用讲解与实例 这篇博客,这里仅简单示例 1、下载 jquery.i18n.properties.js文件,地址: jquery.i18n.properties.js 2、设创建语言properties文件,如:strings…

vue2-org-tree 树型结构的使用

vue2-org-tree 用于创建和显示组织结构树状图,帮助开发者轻松地可视化组织结构,例如公司的层级、部门之间的关系、团队成员等。其主要功能有:自定义节点、可折叠节点、支持拖放、搜索、导航等功能。 这里我们主要使用 vue2-org-tree 进行多次…

苹果平板可以用别的电容笔吗?电容笔和Apple pencil区别

和苹果原装的Pencil相比,这种平替的电容笔并没具备重力压感,只有一种倾斜的压感功能。如果你不经常用来作画,一支普通的电容笔就足够了。不管是用来记笔记,还是用来解决一些数学问题,都能用得上。再说了,即…

ui设计师简历自我评价的范文(合集)

ui设计师简历自我评价的范文篇一 本人毕业于艺术设计专业,具有较高的艺术素养,平时注重设计理论知识的积累,并将理论应用到作品中。了解当下设计的流行趋势,设计注重细节、重视用户体验,对色彩搭配有着浓厚的兴趣&…

Python学习之逻辑中的循环有哪些?

1. for循环 for 循环用于迭代 (遍历)一个序列,例如列表、元组、字符串或字典中的元素。 通常使用 for 循环来遍历可迭代对象中的元素,并对每个元素执行相同的操作。 示例: for item in iterable: # 执行操作2.while循环 -while循环用于在满足某个条件…

新能源车企们在“金九银十”的热潮里改了“策略”?

9月,各大新能源车企销量拉锯战落下帷幕,比亚迪稳坐冠军之位,9月累计销量达286903辆,环比增长18.8%;特斯拉仍旧位列第二,9月销量74073辆,环比增长14.5%;吉利汽车“超车”广汽埃安霸榜…

idea热加载,JRebel 插件是目前最好用的热加载插件,它支持 IDEA Ultimate 旗舰版、Community 社区版

1.如何安装 ① 点击 https://plugins.jetbrains.com/plugin/4441-jrebel-and-xrebel/versions 地址,下载 2022.4.1 版本。如下图所示: ② 打开 [Preference -> Plugins] 菜单,点击「Install Plugin from Disk…」按钮,选择刚下…