vc66vcc
易百纳技术社区
易百纳技术社区
0 访问量
0 原创专栏
0 资料
0 粉丝
个性签名:此E友还没有留下个性签名哦~
加入易百纳时间:2016-03-23

个人成就

易百纳技术社区 共获得 0 个点赞
易百纳技术社区 共获得 0 个收藏
易百纳技术社区 共获得 8 次评论/回复

个人勋章

暂无勋章
分类专栏

Ta擅长的领域

暂无
  • 在海思后端芯片产品化的阶段,如果产品仅使用nand 或spi nand的话,直接使用烧录器一次性烧录镜像合集时,避免不了在程序镜像合集中追加产品信息字段文件的过程。 由于非nor flash器件,追加的产品信息文件,就算以raw格式文件合入,也必须要计算ECC。 在海思芯片手册上第四章存储器接口中提到了,如下描述: 4.3.5.2 8bit ECC 模式器件数据存储结构 2KB page size 8bit ECC 模式 2KB page size 配置下,写到 SPI NAND Flash 中的数据结构如图 4-35 所 示。把软件有效数据切成 2 个1040byte 的数据块,每 1040byte 数据计算一次 ECC。写 到 SPI NAND Flash 器件内部的数据结构会自动调整为 1040byte 数据+14byte ECC 码的 格式交替存放,共2 组,BB 信息放在 SPI NAND Flash spare 区的首两个字节。 我觉得计算ecc的算法都是以256 512 1024 等为基本块单位计算的,数据手册上的这个1040byte计算一次ecc,这算法怎么写?多出的这16字节如果处理,剔除吧不合理,再补齐一次1024吧又有点过分。大家对此有什么理解吗? 在uboot和内核中参看过这一块的源码,貌似是驱动器自己转换的格式,和源码无关啊还是我眼瞎没看到 相应的源码。
    2018-05-29
    1 0 1949
  • 最近同事需求内存检测工具,打算在HI3536 Hi3535等平台上移植一下valgrind。 移植valgrind-3.12.0到最后挂载程序运行是都提示Illegal instruction 以3535平台为例,移植过程参考网友的http://blog.csdn.net/lizhangping/article/details/51833997这个帖子 解决了valgrind failed to start tool 'memcheck' for platform 'arm-linux': not a direcory问题by     export VALGRIND_LIB=XXX/../valgrind/lib/valgrind 解决了/lib/下so为strip后的问题,valgrind必须使用为裁剪过的库      从SDK中找到为裁剪的so文件替换文件系统中已裁剪过的动态库,重新制作了squash的文件文件系统 带-g编译了一个内存泄漏的小demo,挂着跑,出现如下问题: # ./valgrind ../hello valgrind: failed to start tool 'memcheck' for platform 'arm-linux': No such file or directory # export VALGRIND_LIB=/mnt/valgrind/lib/valgrind # ./valgrind ../hello ==695== Memcheck, a memory error detector ==695== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al. ==695== Using Valgrind-3.12.0 and LibVEX; rerun with -h for copyright info ==695== Command: ../hello ==695== ==695== ==695== Process terminating with default action of signal 4 (SIGILL) ==695==  Illegal opcode at address 0x38092674 ==695==    at 0x4000790: ??? (in /lib/ld-2.11.1.so) ==695== ==695== HEAP SUMMARY: ==695==     in use at exit: 0 bytes in 0 blocks ==695==   total heap usage: 0 allocs, 0 frees, 0 bytes allocated ==695== ==695== All heap blocks were freed -- no leaks are possible ==695== ==695== For counts of detected and suppressed errors, rerun with: -v ==695== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) Illegal instruction 尝试过的解决方法 1.观察valgrind的make过程发现 -fno-builtin  -marm -mcpu=cortex-a8  -O2 -g   查看3535编译平台信息CFLAGS += -march=armv7-a -mcpu=cortex-a9   将所有Makefile中cortex-a8 改为cortex-a9 shell脚本如下   sed -i "s/cortex-a8/cortex-a9/g" `grep "cortex-a8" -rl ./`   观察到make时 cortex-a8 已被改为cortex-a9   但是问题依旧。 查资料查到valgrind支持armv7 以上平台,但是出现这个操作码不识别的情况是什么原因,平台架构都已经配置正确了啊。 有移植成功的或者有怀疑对象的童鞋欢迎留言指导。先行谢过。
    2016-11-29
    7 0 6054
易百纳技术社区
共2条
易百纳技术社区