自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(264)
  • 资源 (1)
  • 收藏
  • 关注

转载 科普了解高级编程语言的发展历程

原文标题:高级语言是怎么来的  高级编程语言的发展历程(一) 创始纪  2009-5-13 原文链接  终于放暑假了,有心情来八卦了。我主要想八卦一下高级语言的设计思想和各种范式的来龙去脉,也就是回答这个问题:编程语言为什么会发生成现在这个样子哩?这里面的奥妙又在哪里哩? 我尝试着把这个系列的八卦写下去,包括虚拟机的设计、线程的设计、栈和寄存器两大流派的来龙去脉等等。  高级编程语言的创始纪上写道...

2018-05-19 23:01:34 1477

转载 ARM架构处理器全解析

前不久ARM正式宣布推出新款ARMv8架构的Cortex-A50处理器系列产品,以此来扩大ARM在高性能与低功耗领域的领先地位,进一步抢占移动终端市场份额。Cortex-A50是继Cortex-A15之后的又一重量级产品,将会直接影响到主流PC市场的占有率。围绕该话题,我们今天不妨总结一下近几年来手机端较为主流的ARM处理器。   以由高到低的方式来看,ARM处理器大体上可以排序为:Cortex-...

2018-04-11 14:33:59 5432

转载 ARM与X86架构对比区别

关键字:ARM架构 X86架构 工控主板 开发设计 Android(安卓)系统 LINUX WINCEGOOGLE的Android系统和苹果的IPAD、IPHONE推出后,ARM架构的电脑系统(特别是在终端方面应用)受到用户的广泛支持和追捧,ARM+Android成为IT、通信领域最热门的话题,众多芯片厂商纷纷推出具有各种独特应用功能基于ARM结构开发的产品,近期最新形成的“异构概念”更成为电脑今...

2018-04-11 14:09:44 281

原创 QT的串口类QSerialPort

一、串口类简介当前的QtSerialPort模块中提供了两个C++类,分别是QSerialPort 和QSerialPortInfo。  QSerialPort 类提供了操作串口的各种接口。  QSerialPortInfo 是一个辅助类,可以提供计算机中可用串口的各种信息。使用方法    先介绍 QSerialPortInfo 的使用。下面是一个简单的例子,用来列举出电脑上全部的串口设备。   ...

2018-04-03 09:34:05 379

转载 QT5串口编写简单的上位机

首先,QT5是自带QSerialPort这个类的,使用时需要在pro文件里面添加一行:QT       += serialport然后直接引用头文件就可以使用了。[cpp] view plain copy#include <QtSerialPort/QSerialPort>  #include <QtSerialPort/QSerialPortInfo>  QSerialP...

2018-04-02 15:59:23 767 1

转载 ESP8266初识小结

版权声明:本文为博主 一銤阳光 学习整理的文章,如需转载,请注明出处、附上CSDN博文链接。 http://blog.csdn.net/CSDNhuaong/article/details/67011585目录(?)[+]安信可科技推出ESP8266系列的 WiFi芯片为如今特别热门的物联网提供了低成本的解决方案。内置WiFi前端和高性能的32位ESP32MCU,内置无线网络协议IEEE802.1...

2018-03-21 11:01:03 532

转载 Socket长连接与短连接

长连接与短连接        所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持。         短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,一般银行都使用短连接。          比如http的,只是连接、请求、关闭,过程时

2017-10-20 11:11:05 256

转载 MySQL数据库锁机制之MyISAM引擎表锁和InnoDB行锁详解

MySQL中的锁概念Mysql中不同的存储引擎支持不同的锁机制。比如MyISAM和MEMORY存储引擎采用的表级锁,BDB采用的是页面锁,也支持表级锁,InnoDB存储引擎既支持行级锁,也支持表级锁,默认情况下采用行级锁。Mysql3中锁特性如下:表级锁:开销小,加锁块;不会出现死锁,锁定粒度大,发生锁冲突的概率最高,并发度最低。行级锁:开销大,加锁慢;会出现死锁;

2017-10-16 22:17:51 223

转载 面试 linux常用命令

显示目录和文件的命令   Ls:用于查看所有文件夹的命令。   Dir:用于显示指定文件夹和目录的命令   Tree: 以树状图列出目录内容   Du:显示目录或文件大小  修改目录,文件权限和属主及数组命令   Chmod:用于改变指定文件的权限命令。   Chown:用于改变文件拥有属性的命令。   Chgrp:用于改变文件群

2017-09-29 19:32:47 213

转载 线程池的理解及使用

1.初识线程池:根据系统自身的环境情况,有效的限制执行线程的数量,使得运行效果达到最佳。线程主要是通过控制执行的线程的数量,超出数量的线程排队等候,等待有任务执行完毕,再从队列最前面取出任务执行。2.线程池作用:减少创建和销毁线程的次数,每个工作线程可以多次使用可根据系统情况调整执行的线程数量,防止消耗过多内存3.使用ExecutorService:

2017-09-25 18:05:31 190

转载 线程池的使用

在Java5之后,并发线程这块发生了根本的变化,最重要的莫过于新的启动、调度、管理线程的一大堆API了。在Java5以后,通过Executor来启动线程比用Thread的start()更好。在新特征中,可以很容易控制线程的启动、执行和关闭过程,还可以很容易使用线程池的特性。  一、创建任务  任务就是一个实现了Runnable接口的类。  创建的时候实run方法即可。  二、执行任

2017-09-25 18:03:46 168

转载 Linux系统调用的实现机制分析

Linux系统调用的实现机制分析 Sailor_forever sailing_9806@163.com 转载请注明http://blog.csdn.net/sailor_8318/archive/2008/09/10/2906968.aspx 【摘要】本文介绍了系统调用的一些实现细节。首先分析了系统调用的意义,它们与库函数和应用程序接口(API)有怎样的关系。然后,我们考察了Linu

2017-09-19 10:42:16 312

转载 操作系统内存管理--简单、页式、段式、段页式

一、内存管理的目的和功能内存一直是计算机系统中宝贵而又紧俏的资源,内存能否被有效、合理地使用,将直接影响到操作系统的性能。此外,虽然物理内存的增长现在达到了N个GB,但比物理内存增长还快的是程序,所以无论物理内存如何增长,都赶不上程序增长的速度,所以操作系统如何有效的管理内存便显得尤为重要。(1)内存管理的目的内存管理的目的主要有两个:一是方便用户使用;二是提高存储器的利用率。(2)内

2017-09-08 11:27:03 460

转载 Qt中的三种基类

一.QMainWindow:QMainWindow类提供一个带有菜单条,工具条和一个状态条的主应用程序窗口。主窗口通常提供一个大的中央窗口部件,以及周围菜单,工具条,和一个状态栏。QMainWindow窗口经常被继承,使得封装中央部件,菜单,工具条,状态栏等都变得很容易,当用户点击它的时候,相应的槽就会被调用。二.QWidgetQWidet类是所有用户界面对象的基类,窗

2017-08-06 13:10:42 632

转载 uboot 启动流程分析

在 uboot 第一阶段启动完成后将会调用 start_armboot 开始第二阶段的启动流程,这个阶段的代码由 c 语言编写,分析如下:一、基础数据结构第二阶段主要用到了两个数据结构即 gd_t 和 bd_t,其定义如下:[cpp] view plain copy/* 全局数据结构 */  typedef struct  glo

2017-06-19 08:34:23 744

转载 和菜鸟一起学linux内核源码之基础准备篇

在工作的这段时间,发现我的visio画图熟悉了点点,总喜欢把什么源码啊,结构啊之类的就当作流程图来画来理解,因为对于图,有一个很直观的认识,所以接下去也是以图为中心。 关于linux内核体系结构       说到操作系统,我们都会知道windows操作系统,linux操作系统,苹果的iOS操作系统,以前很火的塞班操作系统,还有最近消费类电子很火的Android操作系统。一个

2017-06-16 20:45:53 354

转载 Linux系统结构 详解

Linux系统一般有4个主要部分:内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。部分层次结构如图1-1所示。 1. linux内核        内核是操作系统的核心,具有很多最基本功能,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定

2017-06-12 19:51:16 224

转载 Linux下的串口编程

一.Linux下的串口编程又那几部分组成  1.    打开串口2.    串口初始化3.    读串口或写串口4.    关闭串口二.串口的打开既然串口在linux中被看作了文件,那么在对文件进行操作前先要对其进行打开操作。1.在Linxu中,串口设备是通过串口终端设备文件来访问的,即通过访问/dev/ttyS0,/

2017-06-05 10:26:20 461

转载 单片机的架构介绍

评-单片机的架构介绍---- 爱评才会赢   [导读]:什么是单片机的架构?单片机的架构有哪几种?本文对这个问题做了个简单的介绍。单片机的架构根据指令结构可以分为CISC(Complex Instruction Set Computer)架构和RISC(Reduced Instruction Set Computer)架构;根据存储器结构可以分为哈佛(H

2017-06-04 11:04:53 8014

转载 【嵌入式Linux+ARM】硬件相关基础知识(门电路_UART_I2C_SPI)

比较基本的一些知识,就算再怎么水,一些基本的电路常识还是需要懂的,需要自己慢慢的积累,实际工作中需要好好积累硬件相关的知识;    正文开始:1.门电路与门、或门、非门的几个标志需要记住,特别是后面两个不要混淆,自己画了一遍:实际电路中可以组合使用:如与非门、或非门等复杂电路。这些是比较简单的,做个简单的复习:与门:1 1——>1    

2017-06-02 08:46:14 502

原创 GPIO示例

#include #include #include #include "mmu.h"#include "typedef.h"#include "S3C2451_gpio.h"//#include "S3C2451_uart.h"//#include "S3C2451_irq.h"//#include "S3C2451_eint.h"U8 disnum = 0;void l

2017-06-01 09:16:31 392

转载 S3c2451开发板的启动过程详解

开发板 启动过程1、概念基础SRAM,STATIC RANDOM ACCESS MEMORY  就是静态随即存储器SROM static read only memory 静态只读存储器ROM ,只读存储器RAM,随即存储器DRAM,英文全称Dynamic Random Access Memory,即动态随机存取存储器SDRAM,同步动态随机存储器 同步就是需要

2017-05-31 09:31:05 451

原创 s3c2451简介

简介Mini2451是一款高性能,低功耗的ARM9一体化平台板,它由广州友善之臂设计、生产和发行销售。它采用Samsung S3C2451作为主处理器,运行主频最高可达533MHz。作为Mini2440的继任者,它不仅仅是秉承了Mini2440“精于心,简于形”的外观,而且接口定义和布局尺寸几乎99%和Mini2440兼容,非常便于老用户更新换代;也利于新用户充分利用Mini2440现有的众多网

2017-05-30 09:20:56 1389

转载 ARM裸机程序研究 - 编译和链接

1. Linux下的二进制可执行文件。    如果世界很简单,那么二进制可执行文件也应该很简单,只包括CPU要执行的指令就可以了。可惜,世界并不简单……。Linux下的二进制可执行文件(以下简称可执行文件),也并不是只包括了指令,还包括了很多其他的信息,比如,执行需要的数据,重定位信息,调试信息,动态链接信息,等等。 所有这些信息都按照一个预定的格式组织在一个可执行文件里面。Linux下叫

2017-05-29 09:07:50 353

原创 NAND_flash和NOR_flash区别(最详细)

NAND flash和NOR flash详解NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NAND flash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。但是经过了十多年之后,仍然有相当多的硬件工程师分不清N

2017-05-28 09:32:28 842

原创 OSTickISR()

在9.03.05节中,我们已经提到过实时系统中时钟节拍发生频率的问题,应该在10到100Hz之间。但由于PC环境的特殊性,时钟节拍由硬件产生,间隔54.93ms (18.20648Hz)。我们将时钟节拍频率设为200Hz。PC时钟节拍的中断向量为0x08,µC/OS-II将此向量截取,指向了µC/OS的中断服务函数OSTickISR(),而原先的中断向量保存在中断129(0x81)中。为满足DOS

2017-05-19 09:03:15 1331

原创 OSIntCtxSw()

在µC/OS-II中,由于中断的产生可能会引起任务切换,在中断服务程序的最后会调用OSIntExit()函数检查任务就绪状态,如果需要进行任务切换,将调用OSIntCtxSw()。所以OSIntCtxSw()又称为中断级的任务切换函数。由于在调用OSIntCtxSw()之前已经发生了中断,OSIntCtxSw()将默认CPU寄存器已经保存在被中断任务的堆栈中了。程序清单L9.5给出的代码大部分

2017-05-17 09:12:15 731

原创 OSCtxSw()

OSCtxSw()是一个任务级的任务切换函数(在任务中调用,区别于在中断程序中调用的OSIntCtxSw())。在80x86系统上,它通过执行一条软中断的指令来实现任务切换。软中断向量指向OSCtxSw()。在µC/OS-II中,如果任务调用了某个函数,而该函数的执行结果可能造成系统任务重新调度(例如试图唤醒了一个优先级更高的任务),则在函数的末尾会调用OSSched(),如果OSSched()判

2017-05-16 09:51:06 1458

原创 OSStartHighRdy()

µC/OS-II 的移植需要用户改写OS_CPU_A.ASM中的四个函数:OSStartHighRdy()OSCtxSw()OSIntCtxSw()OSTickISR()该函数由SStart()函数调用,功能是运行优先级最高的就绪任务,在调用OSStart()之前,用户必须先调用OSInit(),并且已经至少创建了一个任务(请参考OSTaskCreate()和OSTaskCreateExt

2017-05-15 18:39:20 3636

原创 OS_CPU.H

数据类型由于不同的处理器有不同的字长,µC/OS-II的移植需要重新定义一系列的数据结构。使用Borland C/C++编译器,整数(int)类型数据为16位,长整形(long)为32位。为了读者方便起见,尽管µC/OS-II中没有用到浮点类型的数,在源代码中笔者还是提供了浮点类型的定义。由于在80x86实模式中堆栈都是按字进行操作的,没有字节操作,所以Borland C/C++编译器中堆栈数

2017-05-13 08:42:15 321

原创 OS_CPU.H文件

OS_CPU.H 文件中包含与处理器相关的常量,宏和结构体的定义。程序清单L9.2是为80x86编写的OS_CPU.H文件的内容。程序清单L 9.2 OS_CPU.H.#ifdef OS_CPU_GLOBALS#define OS_CPU_EXT#else#define OS_CPU_EXT extern#endif/*****************************

2017-05-11 21:10:16 447

原创 开发工具,目录和文件,INCLUDES.H文件

开发工具笔者采用的是Borland C/C++ V3.1和Borland Turbo Assembler汇编器完成程序的移植和测试,它可以产生可重入的代码,同时支持在C程序中嵌入汇编语句。编译完成后,程序可在PC机上运行。本书代码的测试是在一台Pentium-II计算机上完成的,操作系统是Microsoft Windows 95。实际上编译器生成的是DOS可执行文件,在Windows的DOS窗口

2017-05-10 13:28:38 2212 1

原创 µC/OS-II在80x86上的移植

本章将介绍如何将µC/OS-II移植到Intel 80x86系列CPU上,本章所介绍的移植和代码都是针对80x86的实模式的,且编译器在大模式下编译和连接。本章的内容同样适用于下述CPU:80186802868038680486PentiumPentium II实际上,将要介绍的移植过程适用于所有与80x86兼容的CPU,如AMD,Cyrix,NEC (V-系列)等等。以Intel的

2017-05-09 16:17:33 590

原创 OSTimeTickHook()

void OSTimeTickHook(void)File Called from Code enabled byOS_CPU_C.C OSTimeTick() OS_CPU_HOOKS_EN 只要发生时钟节拍,该函数就会被OSTimeTick()调用。一旦进入OSTimeTick()就会马上调用OSTimeTickHook()以允许执行用户的应用程序中的与时间密切相关的代码。用户还可以

2017-05-08 18:02:08 996

原创 OSTaskStatHook()

void OSTaskStatHook(void)File Called from Code enabled byOS_CPU_C.C OSTaskStat() OS_CPU_HOOKS_EN 该函数每秒钟都会被µC/OS-Ⅱ的统计任务调用。OSTaskStatHook()允许用户加入自己的统计功能。参数 无返回值 无注意事项 统计任务大概在调用OSStart()后再过5秒开

2017-05-07 08:45:49 382

原创 OSTaskSwHook()

void OSTaskSwHook(void)File Called from Code enabled byOS_CPU_C.C OSCtxSw() andOSIntCtxSw() OS_CPU_HOOKS_EN 当执行任务切换时都会调用该函数。全局变量OSTCBHighRdy指向得到CPU的任务的TCB,而OSTCBCur指向被切换出去的任务的TCB。OSTaskSwHook()

2017-05-06 09:36:35 971

原创 OSTaskDelHook()

void OSTaskDelHook(OS_TCB *ptcb)File Called from Code enabled byOS_CPU_C.C OSTaskDel() OS_CPU_HOOKS_EN 当用户通过调用OSTaskDel()来删除任务时都会调用该函数。这样用户就可以处理OSTaskCreateHook()所分配的内存。OSTaskDelHook()就在TCB从TCB链中

2017-05-05 15:45:27 235

原创 OSTaskCreateHook()

void OSTaskCreateHook(OS_TCB *ptcb)File Called from Code enabled byOS_CPU_C.C OSTaskCreate() and OSTaskCreateExt() OS_CPU_HOOKS_EN 无论何时建立任务,在分配好和初始化TCB后就会调用该函数,当然任务的堆栈结构也已经初始化好了。OSTaskCreateHook

2017-05-04 20:58:43 579

原创 OSTaskCreateHook(),OSTaskDelHook(),OSTaskSwHook(),OSTaskStatHook(),OSTimeTickHook()

当用OSTaskCreate()或OSTaskCreateExt()建立任务的时候就会调用OSTaskCreateHook()。该函数允许用户或使用用户的移植实例的用户扩展µC/OS-Ⅱ的功能。当µC/OS-Ⅱ设置完了自己的内部结构后,会在调用任务调度程序之前调用OSTaskCreateHook()。该函数被调用的时候中断是禁止的。因此用户应尽量减少该函数中的代码以缩短中断的响应时间。 当OST

2017-05-02 09:09:15 511

原创 OS_CPU_C.C

µC/OS-Ⅱ的移植实例要求用户编写六个简单的C函数: OSTaskStkInit() OSTaskCreateHook() OSTaskDelHook() OSTaskSwHook() OSTaskStatHook() OSTimeTickHook() 唯一必要的函数是OSTaskStkInit(),其它五个函数必须得声明但没必要包含代码。OSTaskStkInt()

2017-05-01 09:04:25 641

Linux c编程一站式学习(中文版)

本人已细心阅读过,对于程序在PC下实现的机制叙述的比较细致,适合入门嵌入式开发学习,主要内容:部分1,C语言入门;部分2,C语言本质;部分3,linux系统编程。

2017-11-21

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除