Linux 套接字编程中的 5 个隐患

《Linux 套接字编程中的 5 个隐患》文章转自:http://www.ibm.com/developerworks/cn/linux/l-sockpit/在 4.2 BSD UNIX® 操作系统中首次引入,Sockets API 现在是任何操作系统的标准特性。事实上,很难找到一种不支持 Sockets API 的现代语言。该 API 相当简单,但新的开发人员仍然会遇到一些常见的隐患。本文识别那...
阅读(114) 评论(0)

LWIP socket层与协议栈层交互过程分析

LWIP一个很大优势在于支持标准socket应用,完全可以屏蔽底层的交互过程,给使用带来的很多方便。今天以socket创建、连接、收发过程为例,分析下socket层与协议栈层的数据交互过程。(1) socket创建 APP层Socket -> lwip_socket-> (SOCK_STREAM) netconn_new_with_callback(NETCONN_TCP)->tcpip_apim...
阅读(771) 评论(0)

为LWIP移植DM9000驱动

以前设计了一个stm32F407+DM9000的板子,以前跑的是UIP网络协议栈,但在使用中遇到了各种问题,经过很多次补丁才算稳定,但性能还是不尽如人意。现在转来研究下LWIP,正好开发板有个freeRTOS+LWIP+DP83848的例程,今天把这个程序移植到stm32F407+DM9000网卡的这个板子上,以后可以做很多事情。   其实对于任何一个网卡驱动,对于ARM来讲,都需要做三个事情:硬...
阅读(324) 评论(4)

NMEA library数据处理过程分析

今天学习一个GPS数据解析开源库——NMEA lib。使用这个库,可以轻松处理GPS接收机发出的数据,并不需要了解NMEA的具体协议,这个协议栈可以解析所有NMEA0813规定的所有报文格式。不仅可以解析出原始数据中包含的所有参数,还可以计算亮点之间的距离、方向以及一些额外的统计信息,计算非常高效。   这个协议栈完全是由C语言编写,集成到嵌入式系统中非常容易。这里主要研究下协议栈的数据处理过程以...
阅读(228) 评论(0)

我的2016——关于时间与方向的思考

今年是大年夜,阴历2016年的最后一天,也要把今天总结一下。        今年最大的特点感觉就是时间过的太快,去年回家感觉就像在昨天。这种感觉就好像被时间推着往前走,少了些主动的把控。这种感觉就像坐上了皮划艇,一个冲浪下来,就到了终点。        经过了近一年的折腾与等待,今年六月份终于从原单位辞去了工作,拿到离职证明。想想从毕业到此时已经满满三年时间了。这三年时间中,有收获也有惋惜,也有一...
阅读(168) 评论(2)

ARM嵌入式设备Linux系统启动步骤和方式

转自 http://blog.csdn.net/toradexsh/article/details/519081771). 简介本文简单介绍ARM嵌入式设备基于嵌入式Linux操作系统时候的启动步骤和启动方式, 区别与X86平台,ARM平台下并没有一个标准的启动步骤,不同ARM SoC都会使用各自定义的boot ROM来实现启动过程,不过大体上面都包含有一些基本步骤。本文就基于Toradex AR...
阅读(173) 评论(0)

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...
阅读(241) 评论(0)

嵌入式系统内存使用情况评估方法探究

嵌入式系统内存使用情况评估方法探究Daniel 2016-7-22               有一段时间没有写过博客了,这段时间抽空做做记录。总结和记录是对知识最好的回忆与升华。       这段时间遇到MCU程序总是莫名奇妙的跑飞,插上仿真器这样的现象又不会出现,多次怀疑与内存大小有关,但如何才能知道运行中的程序内存的占用情况呢?是不是堆栈使用太多超出了设定的范围?       所有的疑问最终...
阅读(346) 评论(0)

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...
阅读(1128) 评论(0)

C语言编写log文件以及printf函数实现原理

C语言编写log文件以及printf函数实现原理         在系统调试中通过在文件系统里写log日志是一个长期分析系统运行的好方法。做系统调试应该养成这个习惯,可以方便的监控系统可能出现的各种异常。        今天学习下log日志的书写方法。Log一般可以分为以下4种:        ERROR(错误):此信息输出后,主体系统核心模块正常工作,需要修复才能正常工作。         WA...
阅读(1627) 评论(0)

linux 学习计划

开始学习linux要做好计划1.熟悉linux启动过程 3月最后一周 2.熟悉shell脚本编写,linux维护 4月第一周3.熟悉linux网络编程以及异常处理  4月第二周---第三周4.熟悉linux设备驱动程序加载过程  4月第四周5.熟悉linux设备驱动程序编写方法  5月第一周 ---- 5月第三周坚持!!!...
阅读(1076) 评论(2)

Linux启动过程详解(inittab、rc.sysinit、rcX.d、rc.local)

启动第一步--加载BIOS当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了。启动第二步--读取MBR众所周知,硬盘上第0磁道第一个扇区被称为MBR,也就是Master Boo...
阅读(1304) 评论(0)

栈回溯技术arm_v5t_le版

栈回溯技术arm_v5t_le版From:韦东山 2007.04.03栈回溯技术及uClibc的堆实现原理.doc1.    前言段错误、非法地址访问等问题导致程序崩溃的现象屡屡发生,如果能找到发生错误的函数,往往一眼就能看出BUG所在——对于这类比较简单的问题,比如使用空指针进行读写等,利用栈回溯技术可以很快定位。但是对于数组溢出、内存泄漏等问题导致的程序错误,往往隐藏很深,它们并不当场发作,即...
阅读(834) 评论(0)

STM32 内存分布探究

STM32 内存分布探究2016-2-2         本人在运行ucos时遇到一个非常奇怪的问题,运行一段时间后就会莫名进入hardfault函数,导致系统死机。后来根据对堆栈调试,发现每次调用的函数都不一样,甚是费解。通过map文件最后得出结论,原来在系统初始化的时候在flash里面读出了系统配置参数,在系统运行过程中会写flash,而flash定义的地址与程序代码存储的位置发生了重叠,一写...
阅读(1474) 评论(0)

STM32低功耗模式实践

STM32低功耗模式实践          STM32一共有三种低功耗模式,睡眠模式、停止模式以及待机模式。         其中,睡眠模式时内核停止运行,但外设仍在工作,所有外设的时钟不会被关闭。         停止模式,除了Cortex-M3内核停止外,所有外设时钟也被关闭,可以选择使能内部时钟,SRAM和寄存器内容被保留,IO口保持为进入睡眠前的状态。         待机模式时,所有1....
阅读(2751) 评论(1)
93条 共7页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:256262次
    • 积分:3273
    • 等级:
    • 排名:第9820名
    • 原创:65篇
    • 转载:28篇
    • 译文:0篇
    • 评论:81条
    最新评论