- 博客(20)
- 收藏
- 关注
原创 python的几个小用法
参数相关,运行一个phthon脚本的时候经常会在后面带几个参数,怎么解析这些参数呢。用sysimport sys获取参数: sys.argv[0]:脚本本身。sys.argv[1]:第一个参数,以此类推总的参数个数:len(sys.argv)退出脚本运行:sys.exit()文件相关: 参数中提供一个文件路径时,怎么解析绝对路径,相对路径。用osimport os判断是否是绝对路径:os.path.isabs(path),如果是绝对路径返回True,否则...
2021-10-12 19:35:35 166
原创 编译mbedtls
wolfssl是GPL2.0,无法商用,只能尝试mbedtls,这个是免费开源的。下载地址:https://gitee.com/Kono2019/mbedtls.gitgithub经常上不了,gitee比较方便。下载完了,怎么编译呢,我需要编译riscv的。一开始通过cmake -DCMAKE_C_COMPILER=riscv-nuclei-elf-gcc,会编一个test的程序,但是很快报“error: unrecognized command line option '-rdynamic
2021-09-24 14:37:01 2087
原创 openocd+tcl
由于工作需要,需要把激励通过jtag灌入芯片,本来打算采用gdb脚本,但是gdb脚本支持的命令比较弱,最后决定采用tcl脚本语言来实现。写了一个tcl文件,在openocd的cfg文件最后source了一下。报了一些错误。脚本中用到了mem2array读取内存数据:找不到这个命令,很奇怪,这个命令本来就应该支持,我通过telnet连上之后执行mem2array是有这个命令的。为什么在tcl里面写就报错呢?我把这个命令直接写在cfg文件里也不认。最后发现是cfg文件里有问题。init被注释掉了,打开.
2021-09-15 19:20:34 1062
原创 RK3399 io操作GPIO
环境:RK3399-JD4 ubuntu18.04SDK提供了一个io工具可以很方便的控制所有gpio口,但是当我想控制gpio3_d时却发现控制不了。DR,DDR寄存器不管怎么写都没有变化root@firefly:/usr/bin# io -4 -w 0xff788000 0xffffffffroot@firefly:/usr/bin# io -4 -r 0xff788000 ff788000: 00008400root@firefly:/usr/bin# io -4...
2021-09-13 20:16:21 2634
原创 openocd+telnet调试
openocd通常用gdb进行调试,其实也可以用telnet进行调试,而且telnet比gdb更底层。telnet通过4444端口跟openocd相连。但是默认情况下windows是不支持telnet服务的,会提示如下:这个时候需要到setting-->程序-->程序-->启动或关闭windows功能里面把telnet功能打开即可。然后就可以连上了。我想做的是把一个bin文件烧到flash中,我们知道gdb的load命令只能加载elf格式的文件,对于...
2021-09-10 20:58:33 4381 1
原创 RK3399环境搭建----glibc2.29编译
硬件:firefly-RK3399-JD4软件:ubuntu18.04需求:在RK3399开发板上进行在线调试。调试需要用到GDB,之前拿到的gdb运行的时候报错:提示libm.so.6缺少GLIBC_2.29.看了一下我拿到的gdb,里面确实有两个函数用到了GLIBC_2.29而我本地的libm.so.6最高支持GLIBC_2.27怎么办呢,首先想到的就是更新一下GLIBC到2.29版本,但是GLIBC无法通过apt-get install进行安装,只能下载源...
2021-09-08 20:45:44 1748 1
转载 【framework】EventLog分析
在frameworks/base的源码中看到几个很奇怪的EventLogTags.logtags文件,丫竟然还能作为src参与编译,百思不得其解之下只好埋头看源码,记录如下。system/core/logcat/event.logtags文件是说明每个tag的格式的以及部分测试用的log tag,说明如下:[python] view plain copy
2016-11-29 19:57:53 1810
原创 shell脚本格式转换
初学shell编程的研发人员通常都会遇到这样的问题,在windows下编辑的shell脚本放到linux环境下比如手机中运行时就会出一些莫名其妙的错误,及时是一些非常简单的shell命令也会报错。其实错误的原因只有一个就是格式问题,在windows下编辑出的shell脚本格式为dos格式,而linux只能执行格式为unix格式的脚本。因为在dos/window下按一次回车键实际上输入的是“回车(C
2016-11-13 23:50:35 12284
原创 Fastboot功能详解
Android的Fastboot模式相信熟悉android平台以及广大刷机爱好者都不会陌生,fastboot是一种比recovery更底层但是比低格高层的刷机模式。用fastboot模式来进行手机中各分区img的更新或者获取手机某些相信非常方便,因为不需要启动内核。进入fastboot模式的方式各个手机厂家互不相同,有点按着上键插USB线可以进入,有点按着下键插USB线进入,有的按着电源键和上键或
2016-10-27 23:33:42 15153
转载 selinux 基础知识
很好的关于selinux的基础介绍,需要多看几遍。User:BlueswhenFrom Wikipedia, the free encyclopediaJump to: navigation, search Contents1 基础知识2 Policy 2.1 Policy编译(考虑删除)2.2 标记安全上下文 2.2.1 SEAndroid中的安全
2016-10-02 00:16:06 1202
原创 android img的sparse和ext4格式
由于现在系统的emmc容量越来越大,以及android应用的越来越庞大复杂,一些分区的size也越来越大比如system.img,userdata.img,cache.img,boot.img等。以前这些img的格式都是ext3或4,现在android环境默认情况下编译出的这些img是一种叫做sparse格式的文件。 sparse
2016-09-02 23:34:17 8889
原创 MSM8937平台bootloader调试之一
MSM8937平台的AP是八核A53的处理器,分成两个cluster,最高主频支持1.4GHZ,PMIC有两种组合:PM8937+PMI8937和PM8937+PMI8952。 高通平台启动是从PBL开始的,也就是内部ROM里开始运行,PBL加载SBL1和RPM部分后,SBL1开始运行,SBL1加载RPM部分,TZ,APPSBL(aboot)。加载完毕后应该启动lk,但是SBL1
2016-09-02 21:49:23 8471
原创 android N和JDK
最近在搭建android N的编译环境,android N需要用jdk8,于是从oracle网站上下了最新的jdk8的压缩包,如下图所示,我的系统是ubuntu11.04 x64,所以下的是jdk-8u101-linux-x64.tar.gz,然而解压配置之后编译时出错,中检查运行环境的时候就出错了,后来
2016-08-26 23:09:26 1270
转载 Linux中select poll和epoll的区别
在Linux Socket服务器短编程时,为了处理大量客户的连接请求,需要使用非阻塞I/O和复用,select、poll和epoll是Linux API提供的I/O复用方式,自从Linux 2.6中加入了epoll之后,在高性能服务器领域得到广泛的应用,现在比较出名的nginx就是使用epoll来实现I/O复用支持高并发,目前在高并 发的场景下,nginx越来越收到欢迎。据 w3techs 7月
2016-08-12 22:32:00 308
转载 中断线程化
最近在为3.8版本的Linux内核打RT_PREEMPT补丁,并且优化系统实时性,这篇文章主要对RTlinux中中断线程化部分进行分析。我们知道在RT_PREEMPT补丁中之所以要将中断线程化就是因为硬中断的实时性太高,会影响实时进程的实时性,所以需要将中断处理程序线程化并设置优先级,使中断处理线程的优先级比实时进程优先级低,从而提高系统实时性。网上看到一些网友说在2.6.25.8版本的内
2016-08-12 22:13:51 2201
转载 GPIO驱动框架
GPIO驱动框架和具体驱动GPIO(General Purpose Input Output )的含义为通用输入/输出。GPIO可以作为端口扩展器。从硬件上说,SOC提供一些独立的引脚,某些用于输入,某些用于输出,利用高低电平表示0或者1。可以通过SOC的寄存器进行读取和控制,也就是输入和输出。 GPIO驱动框架如果仅仅针对GPIO硬件构建驱动程序,实现一个字符驱动就可以完
2016-08-12 22:05:50 1682
原创 do_ni_syscall
最近查一个问题,看到一份kernellog里有这么一段:unionpay.kalefu[29653]: syscall 133446Code: e0861001 e2833002 e3a02000 ef000000 (e1a00008)CPU : 6 PID: 29653 Comm: unionpay.kalefu Tainted: P
2016-08-11 22:38:43 1128
原创 高通平台memory信息的获取
我们知道每个嵌入式系统的内存发布都不同,这既与平台有关,同时也与硬件连线有关,那么这些具体的内存布局信息是怎么传递到内核并供内核分配使用的呢?我们以高通平台为例进行说明。 总的来说高通平台是中SBL1中完成对系统内存信息的检测从而收集了系统存在的各类内存信息,包括地址,大小等。并且把这些信息添加到SMEM中,通过SMEM传递给lk,lk又将其加入到DEVICE TREE的memo
2016-08-10 23:21:16 2853
原创 高通平台DDR3初始化
本文 以MSM8976平台为例,其他8K的平台都差不多类似。 MSM8976支持两个DDR3接口(EBI0,EBI1)。每个EBI提供两个CS片选(CS0,CS1)。 在SBL1的的代码实现中,一个EBI就是一个channel也就是一个INTERFACE。 EBI0对应 SDRAM_INTERFACE_0; EBI1对应 SDRAM
2016-08-01 23:06:45 7395
原创 MSM8976平台概述
MSM8976是从8952平台继承下来的,包含两组(cluster)core: 四个A72cpu核,支持最高1.8G主频(MSM8976SG最高支持2G主频),有1MB大小的L2 CACHE 四个A53cpu核,支持最高1.4G主频,有512KB大小的L2 CACHE MSM8976采用28nm HMP工艺,ARMV8架构(AArch32+AArch64),采用big
2016-07-23 23:30:49 8773
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人