摘要: 安装tftp服务 安装 sudo apt-get install tftp-hpa tftpd-hpa 配置文件 # /etc/default/tftpd-hpa TFTP_USERNAME="tftp" TFTP_DIRECTORY="/opt/tftp/" TFTP_ADDRESS=":69" 阅读全文
posted @ 2022-05-16 11:12 山岚2013 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 从Win10连接到Ubuntu 22.04。 1. Win10 上生成秘钥公钥 ssh-keygen -t rsa -C "xxx@yyy.com" 2. Ubuntu 22.04 上生成 authorized_keys 拷贝 Win10 上的公钥文件到 Ubuntu 22.04 上 cat id_ 阅读全文
posted @ 2022-05-13 20:41 山岚2013 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 1. GCOV GCOV 是 GCC 自带的代码覆盖工具,GCOV。 在 GCC 编译的时加入特殊的编译选项,生成可执行文件,和 *.gcno; 运行(测试)生成的可执行文件,生成了 *.gcda 数据文件; 有了 *.gcno 和 *.gcda,通过源码生成 gcov 文件,最后生成代码覆盖率报告 阅读全文
posted @ 2022-05-05 11:21 山岚2013 阅读(1895) 评论(0) 推荐(0) 编辑
摘要: 枚举参考文件夹中的文件,并与待比较文件件中的同名文件比较是否一致。 #! /usr/bin/python3.6 # -*- coding:utf-8 -*- import os import sys import json import numpy as np from sqlalchemy imp 阅读全文
posted @ 2022-04-25 20:53 山岚2013 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 交叉编译 gperftools 及使用 sudo apt-get install kcachegrind # 导出为 callgrind 格式时需要 sudo apt install doxygen-latex sudo apt install graphviz # 编译 pprof go inst 阅读全文
posted @ 2022-04-24 20:13 山岚2013 阅读(1798) 评论(0) 推荐(0) 编辑
摘要: 1. 编译zlib wget https://www.zlib.net/zlib-1.2.12.tar.gz # 编译命令 export CC=arm-fullhanv3-linux-uclibcgnueabi- ./configure --prefix=/home/hxf0223/tmp/ssh/ 阅读全文
posted @ 2022-04-23 14:46 山岚2013 阅读(575) 评论(0) 推荐(0) 编辑
摘要: // based on https://gist.github.com/martin-kallman/5049614 // float32 // Martin Kallman // // Fast half-precision to single-precision floating point c 阅读全文
posted @ 2022-03-18 15:04 山岚2013 阅读(2084) 评论(0) 推荐(0) 编辑
摘要: 1 基本概念 在嵌入式软件开发中,经常会碰到说某块内存是cache的,还是non-cache的,它们究竟是什么意思?分别用在什么场景?non-cache和cache的内存区域怎么配置?这篇博文将会围绕这几个问题展开讨论。 Cache,就是一种缓存机制,它位于CPU和DDR之间,为CPU和DDR之间的 阅读全文
posted @ 2022-03-04 11:26 山岚2013 阅读(578) 评论(0) 推荐(0) 编辑
摘要: 下载及编译 wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.9.1/gperftools-2.9.1.tar.gz tar xvf gperftools-2.9.1.tar.gz && cd g 阅读全文
posted @ 2022-02-28 15:23 山岚2013 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 在已经安装anaconda环境及pip之后。 添加并设置pip配置文件: mkdir ~/.pip vim ~/.pip/pip.conf pip.conf文件内容: [global] index-url=http://mirrors.aliyun.com/pypi/simple/ [install 阅读全文
posted @ 2022-02-24 14:33 山岚2013 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 0. 创建anaconda env numpy中MKL/BLAS库占用很大空间。使用如下命令创建新环境,并替换numpy。 conda create -n extranumpy python=3.8.12 conda activate extranumpy conda install -c cond 阅读全文
posted @ 2022-02-17 11:45 山岚2013 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 项目代码根目录下添加一个cmake文件git_version.cmake,内容如下: # get git hash macro(get_git_hash _git_hash) set(ENV{GIT_DIR} ${PROJECT_SOURCE_DIR}/.git) execute_process( 阅读全文
posted @ 2022-01-26 16:13 山岚2013 阅读(378) 评论(0) 推荐(0) 编辑
摘要: ### 1. 预先安装 ```bash sudo apt install ninja-build sudo apt install llvm clang # 第一次编译需要 sudo apt install doxygen sudo apt install libncurses5 sudo apt 阅读全文
posted @ 2022-01-18 14:12 山岚2013 阅读(1128) 评论(0) 推荐(0) 编辑
摘要: 调试时查看依赖DSO pidof tvm_rpc_server cat /proc/<pid_of_tvm_rpc_server>/maps 子进程调试 1.vscode -- launch.json "setupCommands": [ { "description": "为 gdb 启用整齐打印 阅读全文
posted @ 2022-01-17 21:01 山岚2013 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 在调用C++ template函数时,有时候语法会存在歧义。 调用函数时,使用 obj.template func<...>() 形式的语法,避免歧义; 调用类型时,使用嵌入子类型时,使用 a_type::typename sub_type形式的语法,避免歧义。 typename关键字 例如temp 阅读全文
posted @ 2022-01-17 16:56 山岚2013 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 《ARM Architecture Reference Manual ARMv8-A》里面有Memory层级框架图,从中可以看出L1、L2、DRAM、Disk、MMU之间的关系,以及他们在整个存储系统中扮演的角色。 涉及到的相关文档有: 《ARM Architecture Reference Man 阅读全文
posted @ 2022-01-10 14:26 山岚2013 阅读(920) 评论(0) 推荐(0) 编辑
摘要: cache如何寻址 处理器访问cache时,cache电路会将CPU地址进行解码,分成3个部分,分别是: offset: 用于某个cache line -- 字抽取; index: 用于匹配某个cache line -- 组选择; tag: 用于判断匹配到的cache line存放的数据是否和处理器 阅读全文
posted @ 2022-01-10 10:57 山岚2013 阅读(769) 评论(0) 推荐(0) 编辑
摘要: nm命令参数解释 -A 或-o或 --print-file-name:打印出每个符号属于的文件-a或--debug-syms:打印出所有符号,包括debug符号-B:BSD码显示-C或--demangle[=style]:对低级符号名称进行解码,C++文件需要添加--no-demangle:不对低级 阅读全文
posted @ 2022-01-06 16:12 山岚2013 阅读(648) 评论(0) 推荐(0) 编辑
摘要: 最近这一两个月研究AM3730的GPMC与 FPGA的通信,我负责的主要是涉及到GPMC这一块,由于之前就没有Linux基础,刚开始的时候进展很慢,还时不时的面临来自外界的压力,所以那会很 痛苦。前一个月用来熟悉Linux和摸清一个方向,摸清GPMC在内核的目录之后,开始真正的GPMC之旅。GPMC用百度搜索,百度百科会告诉你是什么组策略管理控制台,所以关于硬件GPMC(TI所特有的总线)的中文资料很少,我觉得很有必要把自己做的东西分享一下,本人刚接触Linux驱动,水平有限不对的地方望指教。整个GPMC做完之后会发现其实它很简单,只是在刚开始做的时候会对它的控制机制不太清楚,花费不少时间去读 阅读全文
posted @ 2014-03-06 12:30 山岚2013 阅读(946) 评论(0) 推荐(0) 编辑
摘要: 其实在去年8月份我做系统移植时就构建好了一个可以用的根文件系统,但是那时是跟着别人的《Linux全线移植文档》做的。有些东西我也不清楚,只是跟着做,做出来能用就了事了,没有深究其中的规范,以及文件系统中哪些要,哪些不要。趁着今年过年的几天假期,我移植重新移植了U-Boot1.3.1和Linux2.6.24到S3C2410及S3C2440后,我想好好的看看有 关文件系统构建方法和规范,整理整理构建根文件系统的文档。之后,我用了近一周的时间,慢慢研究《构建嵌入式Linux系统》这本书有关根文件系统的部 分,以及一些网上的参考资料,不断地实验。构建好了一个精简的根文件系统,下面我只介绍构建的过程和方 阅读全文
posted @ 2014-01-22 16:58 山岚2013 阅读(406) 评论(0) 推荐(0) 编辑