- 博客(65)
- 资源 (7)
- 收藏
- 关注
原创 高效阅读嵌入式源码系列三:understand阅读经keil MDK编译的源码
在嵌入式源码阅读中,除linux、uboot外还有很多工程,像工程比较复杂的有rt-thread源码,又该如何精准的找到工程中所必须的源文件与头文件了。这里需要用到 鱼鹰Qsprey 大神写的脚本工具了,可以精准的收集所有Keil MDK源代码文件。.........
2022-06-11 21:20:12 1865
原创 高效阅读嵌入式源码系列二:understand阅读linux、uboot等源码
当使用understand分析linux、uboot这类大型工程时,会因为无关源文件太多导致静态分析时卡死。故,如何精准地导入linux、uboot源码到understand,是值得探索的。如何精准地获取源码文件,主要使用tonyho大神的Generate_Kernel_Uboot_Project_forIDE工具,生成linux/uboot等源码所必须的源文件,导入到understand软件中便于精准分析。.........
2022-06-11 18:24:52 3766
原创 高效阅读嵌入式源码系列一:静态分析神器understand软件基本操作
之前一直使用source insight 4阅读C程序源码,非常喜欢它的context与relation,可惜source insight不能过滤复杂的条件编译(会干扰对源码的理解)。机缘巧合之下,从知乎中获知了understand这个静态分析神器,本系列文章便是介绍这几个月使用understand的方法与技巧。...............
2022-06-11 14:53:35 11599 8
转载 Python数据分析必备Anaconda安装、快捷键、包安装
本文转自http://www.cnblogs.com/jackchen-Net/p/6909395.html 要点导航1.Anaconda操作 2.安装Graphviz 3.Anaconda的快捷键 4.创建多环境的Anaconda 5.Anaconda中的安装包 Python数据分析必备:回到导航 1.Anaconda操作 Anaconda是一个用于...
2018-09-02 12:15:47 649
转载 理解嵌入式开发中的一些硬件相关的概念
做嵌入式开发,经常要接触硬件。做嵌入式开发对数字电路和模拟电路要有一定的了解。这样才能深入的研究下去。下面我们简单的介绍嵌入式开发中的一些硬件相关的概念。电平(Level)在数字电路中,分为高电平和低电平,分别用1和0表示。一个数字电路的管脚,总是存在一个电平的,要么高要么低,或者说要么1要到0(其实,还有另一种状态,后面会提到)。总线(Bus)在嵌入式系统中一定会
2017-06-21 15:49:16 505
转载 敏捷开发之Scrum扫盲篇
原创,请点击!现在敏捷开发是越来越火了,人人都在谈敏捷,人人都在学习Scrum和XP... 为了不落后他人,于是我也开始学习Scrum,今天主要是对我最近阅读的相关资料,根据自己的理解,用自己的话来讲述Scrum中的各个环节,主要目的有两个,一个是进行知识的总结,另外一个是觉得网上很多学习资料的讲述方式让初学者不太容易理解;所以我决定写一篇扫盲性的博文,同时试着也与园内的朋
2017-06-14 21:45:59 346
原创 MySQL执行外部sql脚本文件的命令
执行sql脚本文件方法一 使用cmd命令执行(windows下)【MySQL的bin目录】\mysql –u用户名 –p密码 –D数据库D:\mysql\bin\mysql –uroot –p123456 -Dtest注意:A、如果在sql脚本文件中使用了use 数据库,则-D数据库选项可以忽略B、如果【Mysql的bin目录】中包含空格,则需要使用“”包含,如:“C:\P
2017-06-08 23:11:41 2127
原创 mysql-5.5.56免安装版配置方法
1. 下载mysql-5.5.56-winx64 网址:dev.mysql.com/downloads/mysql/2. 解压MySQL压缩包 将以下载的MySQL压缩包解压到自定义目录下,我的解压目录是: "D:\Program Files\mysql-5.5.56-winx64" 将解压目录下默认文件 my-default.ini 拷贝一份,改
2017-06-07 21:50:02 4635
转载 黑盒测试和白盒测试区别
原文地址一、黑盒测试和白盒测试 黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。白盒测试:已知产品的内部工作过程,可以进行测试证明每种内部操作是否符合设计规格要求,所有内部成分是否经过检查。 1. 第一认识: 黑盒测试测试特点:测试功能;测试依据:需求规格说明书方法举例:等价类划分、边界值测试优点:能站在用户的立场上进行测试
2017-05-08 16:29:58 821
转载 无线通信中几个重要概念
原文地址,请点击!1. 信道 信道是对无线通信中发送端和接收端之间的通路的一种形象比喻,对于无线电波而言,它从发送端传送到接收端,其间并没有一个有形的连接,它的传播路径也有可能不只一条,但是我们为了形象地描述发送端与接收端之间的工作,我们想象两者之间有一个看不见的道路衔接,把这条衔接通路称为信道。信道具有一定的频率带宽,正如公路有一定的宽度一样。一般可以分为物理信道、传输信道、逻辑信道三种
2017-03-31 17:06:22 866
转载 TCP/IP四层模型与OSI参考模型
原文,请点击。TCP/IP四层模型:1.链路层(数据链路层/网络接口层):包括操作系统中的设备驱动程序、计算机中对应的网络接口卡2.网络层(互联网层):处理分组在网络中的活动,比如分组的选路。3.运输层:主要为两台主机上的应用提供端到端的通信。4.应用层:负责处理特定的应用程序细节。 假设在一个局域网(LAN)如以太网中有两台主机,二者运行FTP协议:
2017-03-29 15:59:15 661
转载 深入浅出Z-Stack 2006 OSAL多任务资源分配机制
原文:点击打开链接一、概述 OSAL (Operating System Abstraction Layer),翻译为“操作系统抽象层”。如何理解这个复杂的名词呢?表面上看它是作为操作系统存在的,可是为什么又加上“抽象层”呢?它的本质是什么?在Z-Stack协议栈中,它又扮演了什么角色呢?要解答这些问题,我们必须先从宏观入手,渐渐深入探究,最后答案自然会浮出水面。 下图是Zig
2017-03-21 13:30:17 598
转载 OSAL系统框架专题
OSAL系统框架专题2010-4-15 2:47:009. TI协议栈所用系统框架探讨。51的系统往往不是太大,但是几十K的程序,也足以让一个初学者望而却步。我们首先忽略C语言本身的难度,光是系统框架也让生手读起来很吃力,再加上这种到处是API跟"define"的程序,还没有正式学习协议部分就已经让人在丛林中“迷路”了。在接下来的一段时间内,我会以TI所用的系统框架为主线进行学习,
2017-03-21 13:17:17 710
转载 C语言高效编程与代码优化
在本篇文章中,我收集了很多经验和方法。应用这些经验和方法,可以帮助我们从执行速度和内存使用等方面来优化C语言代码。简介在最近的一个项目中,我们需要开发一个运行在移动设备上但不保证图像高质量的轻量级JPEG库。期间,我总结了一些让程序运行更快的方法。在本篇文章中,我收集了一些经验和方法。应用这些经验和方法,可以帮助我们从执行速度和内存使用等方面来优化C语言代码。尽管在C代码优
2017-03-20 12:18:24 565
转载 ST MCU_GPIO的八种工作模式详解
在Cortex-M3里,对于GPIO的配置种类有8种之多: (1)GPIO_Mode_AIN 模拟输入 (2)GPIO_Mode_IN_FLOATING 浮空输入 (3)GPIO_Mode_IPD 下拉输入 (4)GPIO_Mode_IPU 上拉输入 (5)GPIO_Mode_Out_OD 开漏输出 (6)GPIO_Mode_Out_PP 推挽输出 (7)GPIO_Mo
2017-02-26 11:25:37 2365
转载 详细解释modbus RTU
Modbus 一个工业上常用的通讯协议、一种通讯约定。Modbus协议包括RTU、ASCII、TCP。其中MODBUS-RTU最常用,比较简单,在单片机上很容易实现。虽然RTU比较简单,但是看协议资料、手册说得太专业了,起初很多内容都很难理解。 所谓的协议是什么?就是互相之间的约定嘛,如果不让别人知道那就是暗号。现在就来定义一个新的最简单协议。例如,协议: “A” --“LED灭
2017-02-10 20:02:45 2216
转载 C语言堆栈入门——堆和栈的区别
原文:http://m.blog.chinaunix.net/uid-26696487-id-3513255.html格式和部分内容稍作修改。1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆
2017-02-05 12:39:03 448
转载 3分钟看懂gcc、arm-Linux-gcc和arm-elf-gcc的组成及区别
一、GCC简介The GNU Compiler Collection,通常简称 GCC,是一套由 GNU 开发的编译器集,为什么是编辑器集而不是编译器呢?那是因为它不仅支持 C 语言编译,还支持 C++, Ada,Objective C 等许多语言。另外 GCC 对硬件平台的支持,可以所无所不在,它不仅支持 X86处理器架构, 还支持 ARM, Motorola 68000, Mo
2017-01-19 23:04:28 5726 1
转载 U-Boot启动过程,带你透彻理解U-Boot
U-Boot第一阶段的启动流程:这个阶段主要是初始化硬件设备,为加载U-Boot的第二阶段代码准备RAM空间最后跳转到lib_arm/board.c中start_armboot函数,这是第二阶段的入口点。 U-Boot第一阶段的存储器布局上图中U-Boot安装在Nand Flash,启动时Nand Flash控制器前4KB的代码复制到SRAM中,这
2017-01-19 23:02:38 616
转载 uCos的内存管理
作为一个操作系统内核,必须有向用户提供申请和释放内存的服务,uCos作为一个实时操作系统也不例外。内存的动态申请和释放在嵌入式编程中经常用到,比如我们需要给另外一个任务发送一个消息,我们就可以在发送消息前,申请(OSMemGet )一个内存块,然后把这个内存块作为消息发送出去(OSQPost ),消息被处理完后,内存块释放(OSMemPut)掉,但如果不用内存块来存放消息内容,比如用一
2017-01-19 22:58:49 814
转载 uCos的多任务实现
作为操作系统(OS),最基本的一项服务就是提供多线程,在实时操作系统uCos里,多线程被称为多任务(Task)。多任务并不是CPU能真正同时运行多个程序,实际是靠CPU在多个任务之间转换切换实现的,CPU轮番的服务于一系列的任务,这样CPU在宏观上好像在同时执行多个任务,实际在微观上CPU绝对是“单任务”的。这里要注意区别多线程和多核,如果系统里是有多个CPU,则可以实现真正的多线程了。
2017-01-19 22:56:50 5324 2
转载 为什么我们需要uCos?带你透彻理解RTOS
与uCos见面还是大学的时候,老师让我为毕业设计选一个课题,要求有关嵌入式实时操作系统,于是开始在网上搜索,顺理成章的就发现了uCos,于是开始了uCos之路,但后来由于硬件平台的问题,毕设没有用uCos,而用了另外一个不开源的。 毕业后,自己做的项目用到过RTX51,uCos,Linux,当做linux下的项目时,研究过一阵子linux的源码,后来又一天,闲来无事再去看uCos的源码时,
2017-01-19 22:50:28 11346 1
原创 如何查找bug
在C编程中,程序出现bug再正常不过了,如何查找bug对于初学C编程的来说,是一门学问。如何因地制宜,在仅有的资源中,快速准确地定位bug,对项目的开发非常重要,也是优秀码农的标志之一。常见的查找bug方式有:一是串口输出到桌面上,二是在线仿真。 如何有效地利用串口来监视程序的运行,值得好好思考。首先,得利用好C语言的宏定义中的条件编译。如,在需要用串口输出相关监视信息到桌面的地方,
2017-01-16 23:35:22 1045
转载 换个角度来嵌入式编程 对事件和时间触发的改进
1 传统编程结构的局限性 当不使用RTOS时,嵌入式软件通常采用两种传统的编程结构进行编程,一种叫“前后台结构”或者叫“超级循环结构”,本质上是事件触发的编程方式,另一种叫时间触发的编程方式,Michael J.Pont 的“基于时间触发的编程模式”即属于此。在实际工作中,当系统稍微复杂时,会发现这两种方式都有一定局限性,下面以一个实际产品设计中遇到的问题为例来说明。
2017-01-13 08:39:02 1980
转载 天天写业务代码,如何成为技术大牛?
不管是开发、测试、运维,每个技术人员心理多多少少都有一个成为技术大牛的梦,毕竟“梦想总是要有的,万一实现了呢”!正是对技术梦的追求,促使我们不断地努力和提升自己。然而“梦想是美好的,现实却是残酷的”,很多同学在实际工作后就会发现,梦想是成为大牛,但做的事情看起来跟大牛都不沾边,例如,程序员说“天天写业务代码还加班,如何才能成为技术大牛”,测试说“每天都有执行不完的测试用例”,运
2017-01-11 22:19:29 528
转载 为什么你的项目总是延迟?为什么只有你在加班?你需要看这里
最近和一位项目经理聊天。这位PM之前是个技术大牛,没什么搞不定的东西,而且做事也认真,也卖命。领导没理由不提拔这种牛人。所以,这个项目让这哥们当PM。聊着聊着,这位牛人发出一声感慨,现在的员工不好带啊,每天到了晚上7点,就只剩我和另一个小组长了。项目组10多个人,都跑的精光。我乐了。其实这种情况,我也是碰到过的,在我带的第一个项目,也是类似的情况。我不敢武断的下决定,就跟他
2017-01-11 08:42:46 1210
转载 C语言函数参数的传递详解
一、三道考题开讲之前,我先请你做三道题目。(嘿嘿,得先把你的头脑搞昏才行……唉呀,谁扔我鸡蛋?)考题一,程序代码如下:void Exchg1(int x, int y){ int tmp; tmp = x; x = y; y = tmp; printf("x = %d, y = %d\n", x, y);}main(){
2017-01-09 16:41:07 366
转载 玩无人机必备!PID调节经验
Kp: 比例系数 ----- 比例带(比例度)P:输入偏差信号变化的相对值与输出信号变化的相对值之比的百分数表示 (比例系数的倒数)T:采样时间Ti: 积分时间Td: 微分时间 温度T: P=20~60%,Ti=180~600s,Td=3-180s 压力P: P=30~70%,Ti=24~180s, 液位L: P=20~80%,Ti=60~300s, 流量L: P
2017-01-04 08:43:23 17008
转载 单片机上下拉电阻
前边似乎我们很多次提到了上拉电阻,下拉电阻,具体到底什么样的电阻算是上下拉电阻,上下拉电阻都有何作用呢?上拉电阻就是将不确定的信号通过一个电阻拉到高电平,同时此电阻也起到一个限流作用,下拉就是下拉到低电平。比如我们的 IO 设置为开漏输出高电平或者是高阻态时,默认的电平就是不确定的,外部经一个电阻接到 VCC,也就是上拉电阻,那么相应的引脚就是高电平;经一个电阻到 GND,也就是下
2017-01-03 22:59:34 1498
转载 串口中怎样接收一个完整数据包的解析
这里以串口作为传输媒介,介绍下怎样来发送接收一个完整的数据包。过程涉及到封包与解包。设计一个良好的包传输机制很有利于数据传输的稳定性以及正确性。串口只是一种传输媒介,这种包机制同时也可以用于SPI,I2C的总线下的数据传输。在单片机通信系统(多机通信以及PC与单片机通信)中,是很常见的问题。一、根据帧头帧尾或者帧长检测一个数据帧1、帧头+数据+校验+帧尾这是一个典型的方案,但是
2017-01-03 22:58:18 718
转载 STM32 IAP 在线升级详解
转载自:http://blog.csdn.net/yx_l128125/article/details/12992773(扩展-IAP主要用于产品出厂后应用程序的更新作用,考虑到出厂时要先烧写IAP 再烧写APP应用程序要烧写2次增加工人劳动力基础上写了“STM32 IAP+APP ==>双剑合一”链接稍后发)一、在进入主题之前我们先了解一些必要的基础知识----stm32系列芯
2017-01-02 22:36:32 8002 2
转载 详解堆栈的几种实现方法——C语言版
基本的抽象数据类型(ADT)是编写C程序必要的过程,这类ADT有链表、堆栈、队列和树等,本文主要讲解下堆栈的几种实现方法以及他们的优缺点。 堆栈(stack)的显著特点是后进先出(Last-In First-Out, LIFO),其实现的方法有三种可选方案:静态数组、动态分配的数组、动态分配的链式结构。 静态数组:特点是要求结构的长度固定,而且长度在编译时候就得确定。其优点是结构简单,
2016-12-30 08:41:41 457 1
转载 嵌入式软件入门必读,做好成为嵌入式软件大咖的准备
什么是嵌入式?来自于微信公众号:嵌入式ARM嵌入式分为广义和狭义两种。广义的嵌入式就是片上系统(system on a chip),包括单片机、PSOC、NIOS、Microblaze等。而狭义的嵌入式就是ARM9、cortex A8等特定的跑操作系统的芯片。这里主要介绍狭义嵌入式的学习路线。 还是主流的方法,先学会使用它,再深入研究底层。 常用的操作系统有lin
2016-12-30 08:35:45 449
转载 想快速全面了解LoRa?看这篇就够了!
引言LoRa与NB-IoT是最有发展前景的两个低功耗广域网通信技术。不过两者之间到底有什么区别和不同?谁又将更胜一筹占领LPWAN制高点?物联网的快速发展对无线通信技术提出了更高的要求,专为低带宽、低功耗、远距离、大量连接的物联网应用而设计的LPWAN(low-power Wide-Area Network,低功耗广域网)也快速兴起。NB-IoT与LoRa是其中的典型代表,也是最有发展前景
2016-12-29 08:42:45 10386
转载 SoC嵌入式软件架构设计之二:内存管理单元的软、硬件协同设计
软硬件整合一直是SOC芯片设计的核心技术,由系统软件架构师和芯片系统设计人员共同评估、设计SOC的各个模块,以性能、成本、软件编程灵活性、软件扩展性等作为考量依据,决定模块哪些流程可以软件硬化,哪些环节可以硬件软化。本文是软硬件整合的教科书式的经典案例!以此文祝福所有父亲节日快乐,我们所有的努力也是为了让我们的父母亲和我们的子女生活得更好。引子程序的
2016-12-29 08:32:20 913
转载 如何写出优美的 C 代码
来源:邱俊涛链接:http://www.ibm.com/developerworks/cn/linux/l-cn-cobject/index.html面向对象的 C面向对象的语言更接近人的思维方式,而且在很大程度上降低了代码的复杂性,同时提高了代码的可读性和可维护性,传统的 C 代码同样可以设计出比较易读,易维护,复杂度较低的优美代码,本文将通过一个实际的例子来说明这一点。
2016-12-24 08:53:48 362
转载 理解嵌入式开发中的一些硬件相关的概念
做嵌入式系统开发,经常要接触硬件。做嵌入式开发对数字电路和模拟电路要有一定的了解。这样才能深入的研究下去。下面我们简单的介绍嵌入式开发中的一些硬件相关的概念。电平(Level)在数字电路中,分为高电平和低电平,分别用1和0表示。一个数字电路的管脚,总是存在一个电平的,要么高要么低,或者说要么1要到0(其实,还有另一种状态,后面会提到)。总线(Bus)在嵌入式系统中一
2016-12-16 21:33:36 868
转载 不懂中断你就别玩单片机
中断单片机CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断。例如当你正在洗衣时,突然手机响了(中断发生),你暂时中断洗衣的工作,转去接电话(中断响应和中断服务),待你接完后,再回来继续
2016-12-14 08:42:41 922
转载 C语言面试题(嵌入式开发方向,附答案及点评)
整理自C语言面试题(嵌入式开发方向,附答案及点评)预处理器(Preprocessor)1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)[cpp] view plain copy print?#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到
2016-12-13 16:45:33 2206
转载 C语言的那些小秘密之volatile
volatile的重要性对于搞嵌入式的程序员来说是不言而喻的,对于volatile的了解程度常常被不少公司在招聘嵌入式编程人员面试的时候作为衡量一个应聘者是否合格的参考标准之一,为什么volatile如此的重要呢?这是因为嵌入式的编程人员要经常同中断、底层硬件等打交道,而这些都用到volatile,所以说嵌入式程序员必须要掌握好volatile的使用。其实就象读者所熟悉的const一样,vol
2016-11-24 09:47:49 306
opencv4.1_cache.rar
2020-09-09
protobuf.rar
2020-07-12
thomas-haslwanter / statsintro_python .zip
2020-05-03
常用74系列和CMOS-4000系列数字集成电路功能一览表
2016-09-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人