- 博客(101)
- 资源 (14)
- 收藏
- 关注
转载 Tracealyzer for FreeRTOS(FreeRTOS+Trace)
原文:http://blog.csdn.net/zcshoucsdn/article/details/54670473 最近公司搞新项目,需要使用FreeRTOS,之前只有Linux的基础(学了个皮毛),对于FreeRTOS不是非常了解。在官网转悠的时候发现了有个可视化分析工具:FreeRTOS+Trace,感觉应该不错!下载后发现其是http://percepio.com/这个网站上的东西...
2018-09-30 14:13:36 1836 1
原创 从水晶店老板看程序员的发展2018-9-15
前几天读了一本《牧羊少年奇幻旅程》的书,其中男孩在身无分文的时候到一家水晶店打工的事情,让我觉得很值得思考。重点不是男孩怎么到这里的,而且水晶店老板在谈到他人生,他一辈子都想去一趟麦加去朝圣,非常羡慕那些从麦加兴高采烈的归来人。可是他开始以没有足够的路费为由,就没有去,后来男孩帮他赚到了足够的钱后,他仍然没有去,他说这是他一辈子的信仰,如果真的实现了,那后半生就没什么希望了,也就没...
2018-09-15 22:27:32 635
原创 MCU死机查原因,Crash dump堆栈回溯技术轻松搞定
如果你在使用MCU进行开发,在项目中后期随着功能和代码的增多,死机似乎是无法避免的。每遇到这个问题,一般需要借助仿真器来定位代码缺陷,但如果遇到了一个非常难以复现的问题,或者硬件已经形成产品,无法再接仿真器的时候就比较难受了。在空指针读写、内存泄漏、堆栈溢出、参数错误等情况都可能使MCU运行死机,有些问题是非常难以复现的,为了复现发生异常的场景,往往需要打很多log进行辅助分析,但一...
2018-08-25 16:41:36 10042
转载 TCP窗口滑动以及拥塞控制
转自:http://blog.chinaunix.net/uid-26275986-id-4109679.html TCP协议作为一个可靠的面向流的传输协议,其可靠性和流量控制由滑动窗口协议保证,而拥塞控制则由控制窗口结合一系列的控制算法实现。一、滑动窗口协议 关于这部分自己不晓得怎么叙述才好,因为理解的部分更多,下面就用自己的理解来介绍下TCP的精髓:滑动窗口协议。 所...
2018-07-30 13:58:00 444 1
转载 TCP滑动窗口控制流量的原理
转自https://www.cnblogs.com/luoquan/p/4886345.htmlTCP的滑动窗口机制 TCP这个协议是网络中使用的比较广泛,他是一个面向连接的可靠的传输协议。既然是一个可靠的传输协议就需要对数据进行确认。TCP协议里窗口机制有2种:一种是固定的窗口大小;一种是滑动的窗口。这个窗口大小就是我们一次传输几个数据。对所有数据帧按顺序赋予编号,发送方在发送...
2018-07-27 17:35:49 775
原创 程序员的中年该如何度过(2018-6-20年中)
最近看了不少关于中年危机的文章,一直觉得自己只是一个看客,中年危机似乎离自己还有一段时间。然而,突然又觉得自己是不是已经迈入了中年?自己有没有认真思考过这个问题?看看自己已经三十出头,脸庞渐宽,不注重形象与健身,自从有了孩子生活也被填的满满的,所有时间是在路上,在上班,看娃,睡觉,一切似乎都很正常,按这个节奏转个不停。总是觉得好像少了点什么,对,还有目标吗!回顾以前,上学时的目标是考上...
2018-06-20 21:37:24 10314 32
转载 UDS的CAN刷新软件
UDS的CAN刷新软件http://www.gzweix.com/article/sort0253/sort0487/info-260414_3.html1. UDS相关服务 ISO 14229用于刷新方面的主要诊断服务见表1。 根据ISO 14229协议的诊断服务及ISO 15765-3的通信建议, 刷新通信主要分为3个部分: 刷新前准备工作, 刷新过程, 刷新后的...
2018-02-17 13:15:52 3277 2
原创 UDS tester之Tdrm
UDS tester之Tdrm 2018-1-16 Tdrm叫做 tester diagnostic request manager,或者叫做诊断请求测试管理器,今天以vector的Tdrm为例,研究下它的工作流程。一、Tdrm的作用 如果你在做汽车ECU,那么当做诊断服务的时候一定会用到UDS,而如果恰好你所开发的ECU也有诊断其他ECU的需求,那么就一定会用到tes...
2018-02-16 20:10:49 2313 1
原创 LIN 总线开发知识总结
LIN 总线开发知识总结2018-1-231.LIN总线介绍 在汽车电子开发过程中,不可避免会用到LIN总线(Local Interconnect Network)。做为一个对CAN总线作为低成本辅助总线,LIN总线在车身控制中应用广泛,车门、车窗、车灯以及中控锁等都使用LIN线。其实对于不计成本新能源造车来说,完全可以使用CAN线更简单统一的实现这些功能,但限于汽车里零
2018-01-23 18:42:45 30430 1
原创 2017渐入正轨,2018放眼未来
时间总在不经意中过去,转眼2018年就要到了。过去一年总的来说过的还算充实,完成了几件大事。在北京结了婚,安了家,换了心仪的工作,马上宝宝也要出生了。这一年是非常重要的一年,刚刚越过人生重要的路口,又要负起更多的责任继续前行。看似顺利,但也经历了很多波折。 三十而立,需要解决很多问题,一是成家,二是工作,三是子女。 ——结婚与安家 和女朋友谈了五年的
2017-12-31 20:50:57 1018 2
转载 Linux 套接字编程中的 5 个隐患
《Linux 套接字编程中的 5 个隐患》文章转自:http://www.ibm.com/developerworks/cn/linux/l-sockpit/在 4.2 BSD UNIX® 操作系统中首次引入,Sockets API 现在是任何操作系统的标准特性。事实上,很难找到一种不支持 Sockets API 的现代语言。该 API 相当简单,但新的开发人员仍然会遇到一些常见的隐患。本文识别那
2017-03-11 22:29:54 790
原创 LWIP socket层与协议栈层交互过程分析
LWIP一个很大优势在于支持标准socket应用,完全可以屏蔽底层的交互过程,给使用带来的很多方便。今天以socket创建、连接、收发过程为例,分析下socket层与协议栈层的数据交互过程。(1) socket创建 APP层Socket -> lwip_socket-> (SOCK_STREAM) netconn_new_with_callback(NETCONN_TCP)->tcpip_apim
2017-02-19 16:55:33 3253
原创 为LWIP移植DM9000驱动
以前设计了一个stm32F407+DM9000的板子,以前跑的是UIP网络协议栈,但在使用中遇到了各种问题,经过很多次补丁才算稳定,但性能还是不尽如人意。现在转来研究下LWIP,正好开发板有个freeRTOS+LWIP+DP83848的例程,今天把这个程序移植到stm32F407+DM9000网卡的这个板子上,以后可以做很多事情。 其实对于任何一个网卡驱动,对于ARM来讲,都需要做三个事情:硬
2017-02-02 22:20:37 4303 6
原创 NMEA library数据处理过程分析
今天学习一个GPS数据解析开源库——NMEA lib。使用这个库,可以轻松处理GPS接收机发出的数据,并不需要了解NMEA的具体协议,这个协议栈可以解析所有NMEA0813规定的所有报文格式。不仅可以解析出原始数据中包含的所有参数,还可以计算亮点之间的距离、方向以及一些额外的统计信息,计算非常高效。 这个协议栈完全是由C语言编写,集成到嵌入式系统中非常容易。这里主要研究下协议栈的数据处理过程以
2017-01-30 23:36:39 4223 1
原创 我的2016——关于时间与方向的思考
今年是大年夜,阴历2016年的最后一天,也要把今天总结一下。 今年最大的特点感觉就是时间过的太快,去年回家感觉就像在昨天。这种感觉就好像被时间推着往前走,少了些主动的把控。这种感觉就像坐上了皮划艇,一个冲浪下来,就到了终点。 经过了近一年的折腾与等待,今年六月份终于从原单位辞去了工作,拿到离职证明。想想从毕业到此时已经满满三年时间了。这三年时间中,有收获也有惋惜,也有一
2017-01-27 15:17:43 813 2
转载 ARM嵌入式设备Linux系统启动步骤和方式
转自 http://blog.csdn.net/toradexsh/article/details/519081771). 简介本文简单介绍ARM嵌入式设备基于嵌入式Linux操作系统时候的启动步骤和启动方式, 区别与X86平台,ARM平台下并没有一个标准的启动步骤,不同ARM SoC都会使用各自定义的boot ROM来实现启动过程,不过大体上面都包含有一些基本步骤。本文就基于Toradex AR
2017-01-07 11:54:23 906
转载 Linux加载DTS设备节点的过程(以高通8974平台为例)
DTS是Device Tree Source的缩写,用来描述设备的硬件细节。在过去的ARM Linux中,arch/arm/plat-xxx和arch/arm/mach-xxx中充斥着大量的垃圾代码,相当多数的代码只是在描述板级细节,而这些板级细节对于内核来讲,不过是垃圾,如板上的platform设备、resource、i2c_board_info、spi_board_info以及各种硬件的pla
2016-11-04 14:28:53 778
原创 嵌入式系统内存使用情况评估方法探究
嵌入式系统内存使用情况评估方法探究Daniel 2016-7-22 有一段时间没有写过博客了,这段时间抽空做做记录。总结和记录是对知识最好的回忆与升华。 这段时间遇到MCU程序总是莫名奇妙的跑飞,插上仿真器这样的现象又不会出现,多次怀疑与内存大小有关,但如何才能知道运行中的程序内存的占用情况呢?是不是堆栈使用太多超出了设定的范围? 所有的疑问最终
2016-07-22 17:26:03 1641
原创 linux上手学习
1.查看linux版本号cat /proc/version 可以显示linux内核版本号。为3.122.查看CPU型号cat /proc/cpuinfo3.查看CPU主频、内存大小以及使用情况cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freqcat /proc/meminfo4.查看CPU使用率,查看内存使用情况cat /proc/s
2016-04-15 16:55:57 1657
原创 C语言编写log文件以及printf函数实现原理
C语言编写log文件以及printf函数实现原理 在系统调试中通过在文件系统里写log日志是一个长期分析系统运行的好方法。做系统调试应该养成这个习惯,可以方便的监控系统可能出现的各种异常。 今天学习下log日志的书写方法。Log一般可以分为以下4种: ERROR(错误):此信息输出后,主体系统核心模块正常工作,需要修复才能正常工作。 WA
2016-04-10 21:54:50 5408
原创 linux 学习计划
开始学习linux要做好计划1.熟悉linux启动过程 3月最后一周 2.熟悉shell脚本编写,linux维护 4月第一周3.熟悉linux网络编程以及异常处理 4月第二周---第三周4.熟悉linux设备驱动程序加载过程 4月第四周5.熟悉linux设备驱动程序编写方法 5月第一周 ---- 5月第三周坚持!!!
2016-03-20 22:57:01 1766 2
转载 Linux启动过程详解(inittab、rc.sysinit、rcX.d、rc.local)
启动第一步--加载BIOS当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了。启动第二步--读取MBR众所周知,硬盘上第0磁道第一个扇区被称为MBR,也就是Master Boo
2016-03-20 22:50:34 5376
转载 栈回溯技术arm_v5t_le版
栈回溯技术arm_v5t_le版From:韦东山 2007.04.03栈回溯技术及uClibc的堆实现原理.doc1. 前言段错误、非法地址访问等问题导致程序崩溃的现象屡屡发生,如果能找到发生错误的函数,往往一眼就能看出BUG所在——对于这类比较简单的问题,比如使用空指针进行读写等,利用栈回溯技术可以很快定位。但是对于数组溢出、内存泄漏等问题导致的程序错误,往往隐藏很深,它们并不当场发作,即
2016-03-05 12:29:38 1784
原创 STM32 内存分布探究
STM32 内存分布探究2016-2-2 本人在运行ucos时遇到一个非常奇怪的问题,运行一段时间后就会莫名进入hardfault函数,导致系统死机。后来根据对堆栈调试,发现每次调用的函数都不一样,甚是费解。通过map文件最后得出结论,原来在系统初始化的时候在flash里面读出了系统配置参数,在系统运行过程中会写flash,而flash定义的地址与程序代码存储的位置发生了重叠,一写
2016-02-02 17:39:34 3312
原创 STM32低功耗模式实践
STM32低功耗模式实践 STM32一共有三种低功耗模式,睡眠模式、停止模式以及待机模式。 其中,睡眠模式时内核停止运行,但外设仍在工作,所有外设的时钟不会被关闭。 停止模式,除了Cortex-M3内核停止外,所有外设时钟也被关闭,可以选择使能内部时钟,SRAM和寄存器内容被保留,IO口保持为进入睡眠前的状态。 待机模式时,所有1.
2016-01-28 09:28:31 8520 1
转载 STM32中断优先级彻底讲解
一:综述STM32 目前支持的中断共为 84 个(16 个内核+68 个外部), 16 级可编程中断优先级的设置(仅使用中断优先级设置 8bit 中的高 4 位)和16个抢占优先级(因为抢占优先级最多可以有四位数)。二:优先级判断STM32(Cortex-M3)中有两个优先级的概念——抢占式优先级和响应优先级,有人把响应优先级称作'亚优先级'或'副优先级',每个中断源都需要被指定这
2016-01-24 00:35:44 1154
转载 stm32学习之NOR flash和NAND flash区别,RAM 和ROM区别
要点:NOR FLASH和NAND FLASH的主要区别,常用英文缩写、SSDROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。 RAM 有两大类,一种称为静态RAM(Static
2016-01-14 12:05:05 6333
原创 2016畅想
今天是2015年最后一天了,过去的一年可谓悲喜交加颇为坎坷的一年。被辞职的事情折腾了大半年,还有半年才终得解放,每当想起都有些无奈。有句话将的很好,“生命中最难熬的那段时光,总有一天你会笑着说出来”,期待这一天的到来。 2015年几乎没什么非常难忘的事情,不悦的也终将过去,那只是人生旅程中短短的一段。不过,让我印象深刻的还是出差去深圳和上海。这个是智能硬件和物联网的时代,嵌入式必可
2016-01-01 20:18:49 1042 3
原创 以太网串口双向透传网关设计要点记录
以太网串口双向透传网关设计要点记录2015-10-15 (1)以太网到串口数据的双缓冲机制+双DMA机制 解决收发数据速度不匹配问题 在以太网到串口双向透传数据的开发都会遇到如何处理收发速度不匹配的问题,处理不好,很容易造成丢包.开始时在串口转TCP/UDP这个方向上,串口使用DMA循环缓冲区来接收,TCP/UDP定时轮询发送,这样没什么问题.在收到TCP/UDP一包数
2015-10-15 17:20:07 7076
转载 [STM32/8经验] STM32 USB数据接收与数据发送
在STM32的USB设备通信中,难度较大的还应是USB通信协议部分,但是这部分代码却并不是需要我们这些嵌入式工程师去实现,USB通信协议的内容已经交由STM32 USB-FS-Device Lib库实现,我们只要去关心具体的发送和接收函数在什么地方就可以了,而在初学阶段不必过多的关心USB协议的组成。 在usb_endp.c中,我们拿EP1_OUT_Callback()函数分析。
2015-09-21 17:18:21 12783
原创 基于TCP的STM32 IAP bootloader初步设计
基于TCP的STM32 IAP bootloader初步设计Daniel_USTB 2015-8-22夜 好久没有写东西,前段时间发生了不少事情,现在终于能静下心来。停下脚步望望曾经的自己,一路走来,对技术的坚持是多么的可贵。人的时间是有限的,作为一个嵌入式工程师,对新技术的热爱和好奇心将产生前进的驱动力。至于可以达到怎样的高度,全看个人的执行力和自我约束,兴趣常常是最好
2015-08-23 00:29:53 3650 8
转载 IAP 远程升级设计实现
http://blog.csdn.net/l545045612/article/details/7892591仔细研读。
2015-08-06 11:34:09 1435
转载 [经验] 基于Xmodem的STM32的IAP升级【转】
转自:http://www.eeboard.com/bbs/thread-36238-1-1.html实验平台:windows7 + STM32F103ZET6实验目的:你不需要任何烧录工具,就可以对你的产品进行远程升级代码!1. Xmodem协议简介2. IAP编程原理3. Boot与App程序设计4. 实验步骤5. 远程升级应用1. Xmodem
2015-08-03 18:31:08 3228 1
原创 由观影引发的几点人生思考
看了《天将雄师》我内心激动不已,这不仅是一部电影,更是一部人生的教科书。 一个人如何才能成功? 都说人生而平等,自然没错,但只是在人权上,并不代表每个人的自然条件一样。有的人生来便高富帅,有的人生来便穷屌丝,人生起点不可能一样。出生决定了我们的起点,普通人还是占了多数,抱怨解决不了任何问题,不如脚踏实地认清自我。人的社会就好比一个西域山地,有的人一来到人生便站在高岗俯瞰世界
2015-06-13 21:32:16 1252
原创 基于FPGA的双口RAM设计方法
基于FPGA的双口RAM设计方法Daniel 2015-6-8 在一个项目中使用了双口RAM CY7C025AV,8KX16bit,用于ARM和DSP之前的数据交换,ARM基于STM32的FSMC总线,包含13根地址线,16根数据线,还有CS、OE、WE等控制信号;DSP是基于EFIM接口,包含21根地址线,16根数据线,还有CS、OE、WE等信号,使用CY7C025
2015-06-10 20:41:25 12456
原创 STM32 USB HID设备驱动分析
STM32 USB设备驱动分析DanielLee 2014-9-29一、USB的设备描述符分析USB的设备描述符用以下结构定义:Device_PropertyDEVICE_PROP Device_Property ={CustomHID_init,CustomHID_Reset,CustomHID_Status_In,CustomHID_Status_Out
2014-09-29 16:04:45 7709
原创 常用字符串解析与处理方法
常用字符串解析与处理方法DanielLee2014-9-25 工作一年多来,发现经常会用到字符串的解析与处理,比如编写路由器控制软件时,要对路由器返回的命令进行解析;对GPS注册网络时要进行命令的组合与返回值的判断;采集北斗数据时,要从标准GGA、GSA、RMC等协议中分类参数等等,其实都是如何处理字符串的问题,把字符串处理好,可以很容易的处理命令的交互。一、字符串中变量提
2014-09-25 15:35:46 11901
原创 STM32独立看门狗IWDG与窗口看门狗WWDG研究
STM32独立看门狗IWDG与窗口看门狗WWDG研究DanielLee_USTB 2014-9-251. 看门狗介绍 看门狗这东西虽然简单,但我相信绝大多程序员没有足够重视它。使用看门狗保证系统正常运行是非常有必要的。我们在设计产品时,代码以及硬件设计缺陷或是外界电磁干扰都有可能使系统死机,如果不能正常对其进行复位,系统的可靠性将大打折扣。看门狗分为软件看门狗
2014-09-25 14:47:29 13853
原创 CRC校验实现原理以及程序实现研究
在学习mdobus过程中,曾遇到过CRC校验,之前一直不是很明白其原理,现在利用一点闲暇时间学习下。不同别的校验方式,想弄明白CRC校验的原理以及程序实现过程还真得有点耐心,琢磨一下数学公式。1. 什么是CRC校验一句话总结:将需要传递的数据块看成一个信息多项式M(x),收发双方约定一个生成多项式G(x),最高阶数为r,利用模2除法计算M(x)左移r位后与G(x)两者的余数就
2014-09-25 00:53:25 2712
YUVviewerPlus.rar
2019-08-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人