关闭

Python异常

Python异常 在学习python的过程中,感觉是一门特别容易出错的脚本程序语言,不像C/C++和java在编译的过程中对于语法会有各种检查,尤其是数据类型等,但是在python中,一个变量是可以指向任何类型的,要是编程习惯不好,一不小心就可能造成一些不属于该变量类型的操作,从而引起程序终止。同时,在做一些操作时,例如文件打开等,也可能不成功引发异常等,这个和其他语言一样必须要有异常处理机制。...
阅读(19) 评论(0)

Python类

Python类 类(Class)是面向对象程序设计(OOP,Object-Oriented Programming)实现信息封装的基础。类是一种用户定义类型,也称类类型。每个类包含数据说明和一组操作数据或传递消息的函数。类的实例称为对象。Python也支持类类型。 在python中类的定义通过关键字class,紧接着是(object),表示该类是从哪个类继承下来的,如果没有合适的继承类,就使用...
阅读(28) 评论(0)

Python函数

Python函数 函数的定义 在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回表示函数结束。 例如: def function(arges):     函数主体     return 函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回 如果没有re...
阅读(33) 评论(0)

Python基础知识

Python基础知识 Python简介 Python是一门脚本语言,不同于C/C++编译型语言,python是一门解释型语言,不要通过编译生成可执行文件,编写的.py后缀的python源文件便可以通过pyhton解释器就可以执行。Python作为脚本语言,虽然相比C/C++在执行效率方面不高,但是开发效率高,而且Python就为我们提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、...
阅读(53) 评论(0)

AVL平衡树及插入操作的C语言实现

源码地址:http://download.csdn.net/detail/mcu_tian/9555855 AVL平衡二叉树是一种特殊的查找树,是一种每个节点的左右子树深度不超过1。 AVL是绝对平衡树,增删的操作复杂度过高,应用不如红黑树。 AVL树的引入,就是为了解决二叉查找树的不平衡性导致时间复杂度大大下降。 那么AVL就保持住了(BST)的最好时间复杂度O(logn),所以每次的插...
阅读(449) 评论(0)

二叉查找树的查找、插入、删除、释放等基本操作的实现(C语言)

二叉查找树是一种特殊性质的二叉树,该树中的任何一个节点,它的左子树(若存在)的元素值小于节点的元素值,右子树(若存在)的元素值大于节点的元素值。 实现了二叉树查找树的实现以及基本操作,包括查找、插入、删除、初始化、释放等。 源码下载地址:http://download.csdn.net/detail/mcu_tian/9548788 二叉查找树节点的结构定义 相比二叉树,二叉查找树的元素结...
阅读(2450) 评论(0)

二叉树(C语言)

树可以使用链表也可以用数组实现 数组的实现通过下表与树的节点的序列对应,但是该方不够灵活,而且在C语言中,数组不进行下界检查,而且不能进行动态增长。 在比较通用的实现方式使用的是树链表实现。 对于大量的数据输入,链表的线性范文时间太慢,不宜使用,树的大部分操作的运行时间平均为O(log N) 具体参照源码: 二叉树 二叉树是最简单、应用最广泛的树,通过构造表达式树,对表达式树的一些...
阅读(367) 评论(0)

BusyBox制作Initramfs嵌入式Linux根文件系统

嵌入式Linux系统由linux内核与根文件系统两部分构成,两者缺一不可(无根文件系统的内核无法启动) 使用busybox构建嵌入式根文件系统目录结构,配置内核,并且使用Initramfs制作成根文件系统,根文件系统与内核都一起烧写在镜像中 创建目录结构 根目录的目录结构主要包含如下目录 /dev /etc /lib /usr /var /proc /tmp /home /...
阅读(2586) 评论(0)

栈的链表实现(C语言)

源码文件地址 :http://download.csdn.net/detail/mcu_tian/9530628 由前面:http://blog.csdn.net/mcu_tian/article/details/51493081所述 链表实现的栈在操作过程中频繁的pop和push会伴随着频繁的malloc和free,伴随着很大的系统开销。 基于此,在此实现中,通过实现一个空闲节点链表,将p...
阅读(1563) 评论(0)

栈及实现(C语言)以及中缀式到后缀式的转换实例

栈是一种先进后出(后进先出)的线性表,其限制是仅允许在表的一端进行插入和删除运算。 栈可以用链表实现,也可以用数组实现。 在使用链表实现时,栈顶指针指向链表的前端节点,当栈顶指针为NULL时即为空栈。 在进行插入操作时,将节点插入链表的前端节点,并将栈顶指针指向插入节点。 在进行删除操作的时候,将节点栈顶指针指向的节点(非空)删除,栈顶指针指向后面的链表节点。 使用链表实现栈的方...
阅读(1046) 评论(0)

常见的几种内排序算法以及实现(C语言)

所有未排序的数组是经过检查合法的 主要的内排序包括冒泡、插入、希尔、堆排序、归并、快速、桶排序等 冒泡排序 冒泡排序应该是排序中最简单的算法了 主要思路如下: 1: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2:对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3:针对所有的元素重复以上的步骤,除了最后一个。...
阅读(7420) 评论(0)

MDK5错误以及解决方法

之前做stm32用MDK4.7版本,一直好好的。但是最近手痒,加上MDK5可以导入lwip以及ucos,所以就想试试。 在这两天用的程中,磕磕绊绊的遇到不少问题,好在最终都解决了。现在基本上都能够用起,记录一下吧。 1:在新建工程的时候,发现没有对应的device。 MDK5不像MDK4,在安装的时候,device就已经集成在安装包里。对应的芯片设备型号需要我们自己根据需要导入。...
阅读(5548) 评论(0)

lwip网络接口netif

一个系统中可能有多个网络接口,有可能是以太网,有可能是WiFi,也有可能是其他的网络接口。 在lwip中每一个网络接口都由一个netif结构体表示。表示不同网卡的netif结构体链接成一个链表。全局变量struct netif *netif_list指向该链表表头。 全局变量struct netif *netif_default指向的netif结构所表示的网卡为缺省网卡。在发送消息的时候,会首...
阅读(1805) 评论(0)

lwip包缓冲区pbufs

lwip信息包是存储在pbufs中,pbufs作为lwip的数据缓冲区,是由pbuf结构组成的链表。数据存在pbufs链中各个pbuf节点所指向存储块中。 pbuf结构体的定义如下: struct pbuf {   struct pbuf *next;   //pbuf链中下一个pbuf的地址   void *payload; //指向该pbuf的数据存储区的首地址...
阅读(1313) 评论(0)

lwip内存分配方式

Lwip 的动态内存管理机制可以有三种: C 运行时库自带的内存分配策略、动态内存堆(HEAP)分配策略和动态内存池(POOL)分配策略。 库自带的内存分配策略和动态内存堆(HEAP)分配策略这两种两种策略使用者只能从中选择一种。 在opt.h头文件中配置宏MEM_LIBC_MALLOC来配置是使用C库自带的内存分配还是使用使用lwip内部实现的内存分配。 动态内存堆分配策略原理就是在一个事...
阅读(1785) 评论(0)

LwIP在stm32上的无操作系统移植

LwIP是一个轻型IP协议,有无操作系统的支持都可以运行。这里的移植是无操作系统移植。 LwIP虽然是一个轻型的IP协议,但是TCP/IP基本功能都有。而且占用的资源不多,非常适合用于嵌入式系统。 移植的平台:STM32F103VE+MDK 4.7+ LWIP-1.4.1 下载LwIP-1.4.1源码以及contrib-1.4.1_官网地址:http://download.s...
阅读(6863) 评论(0)

gcc中编译包含math.h的程序注意加-lm参数!

#include 程序中用到数学函数.原本只要在程序中加上面这一行就行了. gcc不知道犯什么毛病.不仅程序里要有include,编译的时候也要在指令后面加-lm 否则就这德行了: /tmp/cc4FFwdt.o(.text+0x126): In function `main': : undefined reference to `sqrt' /tmp/cc4FFwd...
阅读(1063) 评论(0)

确认当前系统的大小端存储模式

大端模式:数据的高字节,保存在内存的低地址中,而数据的低字节保存在内存的高地址中。 小端模式:数据的高字节,保存在内存的高地址中,而数据的低字节保存在内存的低地址中。 检查当前系统的存储模式为大小端的一种方式是使用union类型数据。 由于union中所有的数据成员共用一个空间,所有的数据成员都是共用一个起始地址。 空间的大小为数据成员中长度最长的数据成员。 具体实现如下...
阅读(387) 评论(0)

UC/OS II消息队列管理实例

实例描述: 平台:MDK4.7+UCOSII+STM32F103 系统移植:http://blog.csdn.net/mcu_tian/article/details/48224361 UCOS II消息队列管理实例工程:http://download.csdn.net/detail/mcu_tian/9164937 该工程实例除了使用消息队列的实例之外,还有在APP文...
阅读(549) 评论(0)

UC/OS II 软件定时器

转载出处:http://www.openedv.com/posts/list/15061.htm UCOSII从V2.83版本以后,加入了软件定时器,这使得UCOSII的功能更加完善,在其上的应用程序开发与移植也更加方便。在实时操作系统中一个好的软件定时器实现要求有较高的精度、较小的处理器开销,且占用较少的存储器资源。 通过前面的学习,我们知道UCOSII通过OSTimTick...
阅读(1023) 评论(0)
52条 共3页1 2 3 下一页 尾页
    个人资料
    • 访问:62402次
    • 积分:1101
    • 等级:
    • 排名:千里之外
    • 原创:48篇
    • 转载:4篇
    • 译文:0篇
    • 评论:1条
    文章分类