- 博客(21)
- 资源 (7)
- 收藏
- 关注
原创 芯片项目研发中软硬件协调问题处理之 reg_xls2h
看到一个很有意思到工具,是将 excle 中定义到寄存器翻译成 .h 头文件,在芯片项目研发中有软硬件一起协同工作,可以将寄存器定义这部分通过 excel 工具的宏功能进行进行严格规范,这样就可以产生固定格式的寄存器描述表,然后通过 reg_xls2h (基于 python xlrd)转成对于到 verilog 和 c 代码,然后分别由硬件和软件使用,适用于项目初期,寄存器频繁改动的场景。在 google 中可以搜索到,链接如下:https://code.google.com/archive/p/ope
2021-11-09 21:38:09 483
原创 cygwin 离线版本下载即本地安装版本下载
有时候避免不了要是有cygwin,而且是比较老到版本,但有时要安装到电脑不能联网,需要下载离线版本,这里介绍离线版本到下载方法。本地安装 cygwin 最重要到是提前下载好各种组件然后进行离线安装,下载组件可以通过“setup-x86.exe”进行下载,选择“Download Without Installing”模式:选择好要下载放置到目录,添加好下载到代理网站,之后就进入选择组件界面:通常要下载到组件比较多,需要一个一个选择,如挑选好gcc,python,git等组件到版本,之后开.
2021-11-06 15:18:45 3813
原创 FreeRTOS阅读记录-task相关
使用FreeRTOS也很长时间了,断断续续看过,现在记录,流程写出来不难,难的是进行高度简洁的总结。在学校时,看过UCOS-II的代码,由于版权问题,不能使用。而FreeRTOS是基于MIT open source license,可以免费发布,可以在商业中使用,在2019年EETimes调查中,FreeRTOS是使用量排名第三的OS。先介绍task相关的部分一个OS要把各个task进行管理,不考虑信号量等事件部分,只有几个独立的task,各task只使用延时,OS管理task时,只根据优先级.
2021-09-20 13:44:32 389
原创 嵌入式编译框架
嵌入式编译框架家庭中IoT设备越来越多,尤其是很多小型的设备越来越多,像某某精灵,某某同学的音箱,像控制窗帘的设备,控制灯的mesh设备等等。开源的编译环境也越来越多,比如mbed(国内使用并不方便,速度较慢),linux团队主推的zephyr,国内的RT-thread等。大部分的系统都很小,需要从多个开源代码进行集成,比如内核选用Free-RTOS,网络选用lwip,mesh协议栈选用zephyr的。更多时候需要自己搭建一个可以使用的编译环境,这里给出一个扩展性较强的框架。代码组织编译可以选择CMak
2021-01-03 22:15:08 264 3
原创 用python实现的基于excel的自动化测试
用python实现的基于excel的自动化测试实现背景实现框架整体流程读取配置打开资源创建测试线程等待输入测试结束命令实现背景嵌入式测试中经常是基于PC发命令到DUT设备,看DUT设备的执行结果进行判断测试是否成功。经常是要发很多条命令才能完成一项测试,每次都把命令敲一遍既费时又需要记忆。这里实现了一个把所有命令填入到excel中,自动按顺序发送,并在识别到关键字后继续执行的脚本。并不是所有的命令都是通过PC发送的,有时需要另外一块辅助DUT设备,产生特定的电平信号,有时需要一个平板已发送一些网络包。
2021-01-03 19:42:50 415
原创 android wpa_supplicant 调试
1. 编译 android;2. 修改 external/wpa_supplicant/ 下 src/ wpa_supplicant/ hostapd/ 下源文件;3. 在 external/wpa_supplicant/ 编译, mm 或强制编译 mm -B;4. 推送文件:adb remountadb shell svc wifi disableping 192
2017-02-15 11:39:37 2423
原创 嵌入式链接脚本示例
MEMORY{/* boot ram area, only used for boot.S, merge this section whit run_ram if normal code can run at this section */boot_ram : ORIGIN = 0x01000000, LENGTH = 0x0100/* run ram area, used fo
2017-01-07 15:53:44 1111
原创 android 常用调试命令
android 调试有很多命令,有些不常用,但用到时又想不起来,做个记录1. 模拟按键输入输出文本 adb shell input text 132abc '不支持中文模拟按键 adb shell input keyevent 3模拟触摸 adb shell input tap 100 100模拟滑动 adb shell input swipe 100 300
2015-11-21 21:20:31 671
原创 linux 常用调试命令
嵌入式 linux 调试有很多常用命令,在这里做个汇总,用到时方便查找。一 、 cpu 相关1. 开关 cpu (若支持 hotplug)echo 0 > /sys/devices/system/cpu/cpux/online2. 调整 cpu 频率echo userspace > /sys/devices/system/cpu/cpux/cpufreq/scali
2015-11-21 21:08:43 838
原创 linux kernel 中断子系统之(一)-- ARM GIC 硬件
一个系统中,中断是很重要的组成部分之一,有了中断,系统才可以不用一直轮询(polling)是否有事件发生,系统效率才得以提高,而且对中断的控制又通常分散在各个地方,不同的部分由不同功能的程序控制,做到了各司其职,配合无误,系统才能正常工作。一般系统中,中断控制分为三个地方:模块、中断控制器、处理器,模块通常有寄存器可以控制是否使能中断功能,中断触发条件等;中断控制器可以管理中断的优先级等,而处理所
2015-04-12 00:27:29 13740
转载 android_移植memtester
android_移植memtester1.下载memtester:http://pyropus.ca/software/memtester/2.解压到android源代码external目录下。3.使用下述Android.mk文件:[cpp] view plaincopy# used to gen: memte
2014-05-03 17:09:54 2095
原创 linux驱动框架--hwmon学习
linux驱动中,hwmon越来越多的被使用,利用hwmon下的节点查看内核导出的信息非常方便,也用hwmon框架做了两个设备的驱动了,该梳理下,做为知识储备了。
2014-03-07 22:07:59 13281
原创 linux中probe函数传递参数的寻找(下)
linux中probe函数传递参数的寻找(下) 通过追寻driver的脚步,我们有了努力的方向:只有找到spi_bus_type的填充device即可,下面该从device去打通,当两个连通之日,也是任督二脉打通之时。先从设备定义去查看,在mach-smdk6410.c中定义了硬件设备信息,从这作为突破口。/* for mx25lx*/static void cs_se
2013-01-06 23:07:25 5608
原创 linux中probe函数中传递的参数来源(上)
linux中probe函数传递参数的寻找(上) 上一篇中,我们追踪了probe函数在何时调用,知道了满足什么条件会调用probe函数,但probe函数中传递的参数我们并不知道在何时定义,到底是谁定义的,反正不是我们在驱动中定义的(当然,驱动中也不会定义设备的详细信息),但也不是在我们设备信息定义时的结构体。这就相当于武林绝学中只打通了任脉,而督脉还没打通,要想成为武林高手还差一步
2012-12-02 12:37:26 12561 1
转载 信号量与线程互斥锁的区别
援引CU上一篇帖子的内容:“信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作(大家都在semtake的时候,就阻塞在 哪里)。而互斥锁是用在多线程多任务互斥的,一个线程占用了某一个资源,那么别的线程就无法访问,直到这个线程unlock,其他的线程才开始可以利用这 个资源。比如对全局变量的访问,有时要加锁,操作完了,在解锁。有的时候锁和信号量
2012-10-07 21:43:49 1007 1
转载 Arm嵌入式linux启动过程
一位大师级的人物写的,不看要后悔的哟!!如果以为到了c代码可以松一口气的话,就大错特措了,linux的c也不比汇编好懂多少,相反到掩盖了汇编的一些和机器相关的部分,有时候更难懂。其实作为编写操作系统的c代码,只不过是汇编的另一种写法,和机器代码的联系是很紧密的。 start_kernel在 /linux/init/main.c中定义: asmlinkage void __i
2012-10-04 21:37:49 1281
转载 Linux内存管理
Linux内存管理摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法。力求从外到内、水到渠成地引导网友分析Linux的内存管理与使用。在本章最后,我们给出一个内存映射的实例,帮助网友们理解内核内存管理与用户内存管理之间的关系,希望大家最终能驾驭Linux内存管理。前言内存管理一向是所有操作系统书籍不惜笔墨
2012-10-04 21:00:24 960
转载 sizeof的笔试题
转自:http://blog.csdn.net/yanyaohua0314/article/details/17877491.常规char str1[] = “Hello” ;char str2[5] = {'H','e','l','l','o'};char str3[6] = {'H','e','l','l','o','/0'};char *p1 = "Hello"
2012-10-04 20:54:22 921
原创 linux中 probe函数的何时调用的?
linux中 probe函数何时调用的 所以的驱动教程上都说:只有设备和驱动的名字匹配,BUS就会调用驱动的probe函数,但是有时我们要看看probe函数里面到底做了什么,还有传递给probe函数的参数我们就不知道在哪定义(反正不是我们在驱动里定义的),如果不知道传递进的参数,去看probe函数总是感觉不求甚解的样子(你对系统不求甚解,系统也会对你的要求不求甚解的),心里对自
2012-09-29 20:41:38 17721 6
原创 container_of的理解
首先说个我个人的经验:遇到指针,首先要想“该指针指向什么?”。如果是变量,再看该指针指向变量的类型:int,数组,...。如果是函数,看“该指针指向的函数返回什么?”:void,int,指针,...如:int *a[10]; 与 int (*a)[10]首先 int *a[10] 是个数组([]优先级高),那么这个数组里都放的什么呢?向左看,是指针,(首先要看的)这个指针指向什么?一个
2012-08-26 10:25:50 1257
原创 linux-3.0.1下spi设备mx25l的驱动
linux-3.0.1下spi设备mx25l的驱动(基于OK6410)总述 学linux也快有一年了,这半年断断续续,忙着杂七杂八的事情,一直没全身心的投入的学。作为一个初学者对复杂而博大精深的linux有太多的话要吐槽:linux涉及的东西太多,即使写一个很简单的驱动也要涉及很多知识。看资料时,一会看看这块,一会又看看另一块,此时又忘了前几天看的那块是什么了,总有种按下葫
2012-08-24 18:29:32 7175
阿里技术参考图册(算法篇和研发篇)
2018-09-26
DA1458x SDK 5.0.4 及PDF资料
2018-08-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人