kinbo88的专栏

整理和记录开发过程中的某些知识,功不唐捐

循环点击页面某button

做了一个页面循环点击的脚本。 首先登录就遇到两个问题,首先是输入用户名密码,这个故意输入错密码就知道postData 的格式了,然后是token问题,直接get页面就获取到token了。 接着发现点击button的是get 命令,这个就简单了。获取状态也是get命令,用正则表达式匹配一下就好了...

2019-04-12 12:08:45

阅读数 18

评论数 0

替换代码中特殊字符

替换工程文件中特殊字符,比如某类注释或者空行的空格,用脚本就比较方便了。 例如写一个config.ini的配置文件: [dir] dir1 = D:/test1 dir2 = D:/test2 然后就是用configparser库去读取配置文件,re正则表达式库去匹配对应的字符串,代码如下...

2019-04-08 14:37:05

阅读数 20

评论数 0

用valgrind扫描代码出现的问题

用valgrind扫描代码,会发现代码中很多问题,如下。 1. 变量声明后未初始化 修改方法比较简单,直接赋值为0即可,组数和结构体变量可以这样赋0:“={0}”。 2. malloc或new后没有memset 和第一种情况类似,都是分配了内存,但是内存没有初始化,加上memset就行。 ...

2019-04-08 14:27:27

阅读数 18

评论数 0

C语言的2016(转载)

转载自:https://infoq.cn/article/c-language-2016 查看英文原文:How to C in 2016 使用 C 语言的首要规则是,能不用就不用。 如果必须要用 C 语言,应该遵照现代的规则。 自70 年代初,C 语言已经存在。人们在 C 不同的发...

2019-03-15 17:42:38

阅读数 65

评论数 0

业界通用代码检查工具(针对C语言)

业界通用代码检查工具,介绍如下。 Valgrind :功能很多,常用于检查内存泄漏,包含几个常见工具如下。 memcheck --> 这是valgrind应用最广泛的工具,一个重量级的内存检查器,能够发现开发中绝大多数内存错误使用情况,比如:使用未初始化的内存,使用已经释放...

2019-03-15 16:19:58

阅读数 196

评论数 0

局部变量在栈上排列

有人提到了这个问题,的确有点诧异,自己以前从未考虑这个问题,毕竟函数调用完成后,栈空间就被释放了,局部变量如果不是很大的数组或结构体其实不影响代码性能。 直接上例子吧,例1: #include "stdio.h" int main(void) { ...

2019-03-05 14:25:33

阅读数 58

评论数 0

ATPCS:为什么函数参数个数最好不要超过4个

有人建议说,函数的参数个数最好不要超过4个,这是为什么呢? 这里就涉及到我们的硬件平台了,对于ARM体系来说,不同语言撰写的函数之间相互调用(mix calls)遵循的是 ATPCS(ARM-Thumb Procedure Call Standard),ATPCS主要是定义了函数调用时参数的传递...

2019-03-04 09:02:29

阅读数 275

评论数 0

基于C语言,一句话描述设计模式

【前言】设计模式主要针对面向对象语言,或者说就是基于java诞生的。C语言开发者也时不时引用一下某个设计模式来描述自己的代码,毕竟设计模式的编程思想是通用的。设计模式的描述语言都是对象、类、封装、继承,而我们C语言总是在说函数、数据结构、算法。在这里就强行用C语言的角度描述一下设计模式,经验有限,...

2019-03-01 16:52:20

阅读数 85

评论数 0

rlu链表,hash, sqlite

最近看了下代码,发现挺有意思的几个地方,比如rlu链表,hash代码里借用了kernel的一些代码等。 RLU链表,如果满了的话,先删除最后链表一个元素,新增元素放入最前面 rlu((Least recently used,最近最少使用)双向链表, 增/删/替换 双向链表 加: add_h...

2018-07-25 10:39:02

阅读数 107

评论数 2

应用层log打印

应用层一般log打印函数都经过封装了,这样可以设置log等级,方便调试,可以直接屏幕输出,也可以保存到文件或者发送到云端。现只看屏幕输出部分,跟进这些函数,最终就是输出到 stderr 或者 stdout 或者调用printf。 先看一个函数: void std_err_out(void) ...

2018-07-25 10:02:57

阅读数 132

评论数 0

backtrace,应用程序调用栈

在kernel里可以用dump_stack()打出内核函数调用关系,在应用程序里可以用backtrace+backtrace_symbols打出调用栈。一般来说应用程序里手动跟踪可能更方便,或者crash后用gdb打出调用关系也很简单,但某些特殊需求里还是得请backtrace出来。 这两个函数...

2018-07-24 14:57:50

阅读数 195

评论数 0

pca9557,i2c转gpio,按键和三色灯

芯片平台的可用GPIO太少了,可以用PCA9557来增加GPIO,挂到I2C上,然后一下增加8个GPIO,不要太爽。接下来就要准备PCA9557的驱动。有三种方式,1.问原厂要驱动;2.自己写驱动;3.从linux源码里找对应驱动。个人认为消费级的嵌入式开发非常不适合自己写外设驱动,非常耗时间还容...

2018-06-20 15:58:54

阅读数 1096

评论数 0

一些笔记:关于mt7628 openwrt 音频调试

没有做过比这版更烂的开发,坑还在,开发还在继续,记一下笔记吧,或许找到一些灵感。先用 mtk-openwrt-sdk-20160324-8f8e4f1e.tar.bz2 这版官方SDK(从官方网站上看这是最新的一版openwrt SDK,2016年的,是的,你没看错),然后i2c都巨艰难的调试出来...

2018-04-26 15:49:04

阅读数 2288

评论数 0

初入android开发

刚开始以为android 开发跟普通嵌入式开发差不多,无非加一个app和屏幕,然后和主应用程序或者kernel交互罢了。应该和以前做过的一些方案类似,比如加一个 goahead 做webui或者加一个 ucgui 做屏幕显示或者类似openwrt里面编译一个apk可以安装和卸载,或者类似 lega...

2018-03-08 11:41:56

阅读数 131

评论数 0

GPIO 驱动能力测试

在需求文档中 GPIO 驱动电流是6mA,高电平1.8V,GPIO 状态简单分为三种,输入,输出高,输出低,那么如何测试呢? 输出高: 输出低:   输入:

2018-01-04 19:02:07

阅读数 1107

评论数 0

4M 高速UART 测试

芯片手册上说低速UART 基于FIFO,高速UART 基于 BAM(Bus Access Manager?)。高速UART Baudrates 300 bps up to 4M bps, 这就郁闷了, stty 也不支持这么高的设置啊,然后硬件工程师一时也没找到支持4MHz的硬件来测试,但测试就是...

2018-01-02 17:13:06

阅读数 1159

评论数 0

UART CTS/RTS 测试

UART,通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)。 异步通信是一个字符接着一个字符传输,一个字符的信息由起始位、数据位、奇偶校验位和停止位组成。 硬流控: RTS: (Require To Send,发送请求)为输出信号,用于指...

2018-01-02 16:36:34

阅读数 1057

评论数 0

关于网络模块的一些笔记

1.测试网络的吞吐量挂载:mount -t nfs -o intr,nolock,rsize=1024,wsize=1024 IP:/mnt/sda2/kh/nfs /tmp/remote 然后文件while读写.2.ifconfig 查看网络信息udhcpc                   ...

2018-01-02 15:05:13

阅读数 208

评论数 0

The Toshiba neutrino ethernet bridge + AR8033 issue

1 Issue:The Toshiba neutrino ethernet driver cann't ping PC:Add dts node "qcom,ntn_avb" in our dts, ping success on 100M.But it pin...

2018-01-02 14:07:46

阅读数 580

评论数 0

UART遇到两个与 stty 相关问题

1. device 发送单个字符,PC 接收正常;PC 发送单个字符给device,需要发送四次,device才能一起接收过来。/ # echo "a" > /dev/ttyHSL1 ---正常 / # cat /dev/t...

2017-05-11 16:31:51

阅读数 596

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭