自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(78)
  • 资源 (6)
  • 收藏
  • 关注

翻译 Memory Overcommit

Memory Overcommit1.什么是OverCommit Memory?Memory Overcommit:操作系统承诺给进程内存大小超过了实际可用的内存。一个保守的操作系统不会允许memory overcommit,有多少就分配多少,再申请就没有了,这其实有些浪费内存,因为进程实际使用到的内存往往比申请的内存要少,比如某个进程malloc()了200MB内存,但实际上只用到了100MB,按照UNIX/Linux的算法,物理内存页的分配发生在使用的瞬间,而不是在申请的瞬间,也就是说未用到的100

2022-04-14 20:06:09 579

原创 0-程序崩溃分析小例子

程序奔溃分析最近工作中遇到多次程序崩溃的情况,分析起来非常头疼,从网上找了两片有用的博文,对解决问题,提供了很大的帮助,因此在这里记录下。主要分为两种情况,有现场的跑飞和没有现场的Segmentation fault1. 有现场1.1. 测试代码有代码如下:#include <stdio.h>#include <string.h>#include <stdlib.h>void getmemory(char *p){ p=(char *)mallo

2021-12-11 16:46:17 1142

原创 我们为什么不应该使用volatile

我们不应该使用volatile

2021-12-11 16:38:03 1370

转载 volatile和编译器屏障

编译器(compiler)的工作之一是优化我们的代码以提高性能。这包括在不改变程序行为的情况下重新排列指令。因为compiler不知道什么样的代码需要线程安全(thread-safe),所以compiler假设我们的代码都是单线程执行(single-threaded),并且进行指令重排优化并保证是单线程安全的。因此,当你不需要compiler重新排序指令的时候,你需要显式告编译器,我不需要重排。否则,它可不会听你的。本篇文章中,我们一起探究compiler关于指令重排的优化规则。 注:测试使用aarch64

2021-12-11 16:33:54 911

转载 Dynamic DMA mapping Guide

一、前言这是一篇指导驱动工程师如何使用DMA API的文档,为了方便理解,文档中给出了伪代码的例程。另外一篇文档dma-api.txt给出了相关API的简明描述,有兴趣也可以看看那一篇,这两份文档在DMA API的描述方面是一致的。 二、从CPU角度看到的地址和从DMA控制器看到的地址有什么不同?在DMA API中涉及好几个地址的概念(物理地址、虚拟地址和总线地址),正确的理解这些地址是非常重要的。内核通常使用的地址是虚拟地址。我们调用kmalloc()、vmalloc()或者类似的接.

2021-11-16 19:16:06 187

转载 LINUX中DMA机制的实现-网络发包的ring机制

我们先从计算机组成原理的层面介绍DMA,再简单介绍Linux网络子系统的DMA机制是如何的实现的。一、计算机组成原理中的DMA以往的I/O设备和主存交换信息都要经过CPU的操作。不论是最早的轮询方式,还是我们学过的中断方式。虽然中断方式相比轮询方式已经节省了大量的CPU资源。但是在处理大量的数据时,DMA相比中断方式进一步解放了CPU。DMA就是Direct Memory Access,意思是I/O设备直接存储器访问,几乎不消耗CPU的资源。在I/O设备和主存传递数据的时候,CPU可以处理其他事。1. I/

2021-11-13 22:51:01 1390

转载 高速缓存与一致性-DMA buffer对齐要求

DMA应该多多少少知道点吧。DMA(Direct Memory Access)是指在外接可以不用CPU干预,直接把数据传输到内存的技术。这个过程中可以把CPU解放出来,可以很好的提升系统性能。那么DMA和Cache有什么关系呢?这也需要我们关注?需要解决什么问题我们知道DMA可以帮我们在I/O和主存之间搬运数据,且不需要CPU参与。高速缓存是CPU和主存之间的数据交互的桥梁。而DMA如果和cache之间没有任何关系的话,可能会出现数据不一致。例如,CPU修改了部分数据依然躺在cache中(采用写回机制)。D

2021-11-13 22:46:52 3277

转载 DMA入门:一个故事看懂DMA

数据搬运工Hi,我是CPU一号车间的阿Q,有段日子没见面了。还记得上回说到咱们厂里用上了DMA技术(太慢不能忍!CPU又拿硬盘和网卡开刀了!)之后,我们总算解放了,再也不用奔波于网卡、硬盘与内存之间搬运数据了。前段时间,我到二号车间虎子那里去串门,发现他正忙的满头大汗。“老哥,你这是接到什么任务了?看把你给你忙的”虎子一看我过来,擦了擦头上的汗说到:“我这是在搬运数据啊,刚刚搬完一批,累死我了”我有些疑惑:“咱们现在不是有DMA技术了吗,找外包DMA控制器搬运啊,你干嘛还亲自上阵?”“DMA是用于I/O外部

2021-11-13 22:43:46 568

转载 DMA CACHE一致性

先简单说一下DMA的CACHE一致性是个啥问题。CPU在访问内存时,首先判断所要访问的内容是否在Cache中,如果在,就称为“命中(hit)”,此时CPU直接从Cache中调用该内容;否则,就 称为“ 不命中”,CPU只好去内存中调用所需的子程序或指令了。CPU不但可以直接从Cache中读出内容,也可以直接往其中写入内容。由于Cache的存取速 率相当快,使得CPU的利用率大大提高,进而使整个系统的性能得以提升。Cache的一致性就是直Cache中的数据,与对应的内存中的数据是一致的。DMA是直接操作总线地

2021-11-13 22:41:18 909

转载 对流式DMA和一致性DMA的认识

一致性DMAdma_alloc_coherent(dev, size, &dma_handle, gfp);流式DMAdma_map_single(dev, addr, size, direction); dma_unmap_single(dev, dma_handle, size, direction); 一致性DMA可以认为是“同步的”,就是DMA和CPU之间看到的物理内存是一致的。流式DMA则不然。DMA操作和CPU之间的主要隔阂就是cache,因为一般来说DMA只操作物理内存,不会动cach

2021-11-13 22:39:36 395

原创 C编程调试小技能

1.打印到字符串#include<sys/types.h>#include<unistd.h>int main(void){ unsigned int j = 0; char buf[100]; j=sprintf(buf,"%s","wang\r\n"); sprintf(buf+j,"%s","leilei\r\n"); printf("buf:%s\r\n",buf); return 0;}2.打印到文件FILE *fp =NULL;

2021-09-16 19:43:35 104

转载 进程占用内存分析

linux 下面查看内存有多种渠道,比如通过命令 ps ,top,free,或者通过/proc系统。一般情况下,ps,top,free可以满足要求,如果需要比较详细和精确地知道整机内存或者某个进程内存的使用情况,可以通过/proc 文件系统。使用命令free : 显示系统可用内存以及已经使用的内存的信息ps: 查看进程信息,静态,即当前状态top: 查看进程信息,动态1. ps vs topps命令–提供系统过去信息的一次性快照,也就是说ps命令能够查看刚刚系统的进程信息。top命令反

2021-09-16 19:29:42 2877

转载 调试工具GDB构建

调试工具GDB构建对于嵌入式GDB而已,分为两种,这两种方法的的区分是鉴于使用和编译后的工具而言。第一种是开发板上使用的GDB,就像PC机上Linux系统使用GDB一样。第二种是开发板上使用单板的GDB Client,PC机上使用PC版本GDB Server。两者通过网络来交互信息实现调试。我们这里介绍第一种,主要介绍第一种gdb的构建方法:下载gdb源码,路径为:http://ftp.gnu.org/gnu/gdb/添加交叉编译工具链到环境变量,即交叉编译链所在路径加到环境变量中,

2021-09-10 11:38:42 472

转载 DMA与缓存一致性

1. 出现内存不一致的原因write through: CPU直接写内存,不经过cache。write back: CPU只写到cache中。cache的硬件使用LRU算法将cache里面的内容替换到内存。通常是这种方式。DMA可以完成从内存到外设直接进行数据搬移。但DMA不能访问CPU的cache,CPU在读内存的时候,如果cache命中则只是在cache去读,而不是从内存读,写内存的时候,也可能实际上没有写到内存,而只是直接写到了cache。这样一来,如果DMA从将数据从外设写到内

2021-06-07 09:42:12 1177

原创 什么是MLF?与逆回购有什么区别?

中期借贷便利(Medium-term lending Facility, MLF)是指中央银行提供中期基础货币的货币政策工具,对象为符合宏观审慎管理要求的商业银行、政策性银行,可通过招标方式开展。发放方式为质押方式,并需要提供国债、央行票据、政策性金融债等优质债券作为质押品。中期借贷便利利率发挥中期政策利率的作用,通过调节向金融机构中期融资的成本来对金融机构的资产负债表和市场预期产生影响,引导其向符合国家政策导向的实体经济部门提供低成本资金,促进降低社会融资成本两者的区别主要有以下的两个方面:操作方

2021-01-25 23:23:41 5188

原创 云和虚拟化

虚拟化和云1.什么是虚拟化虚拟化是一种技术,借助虚拟化技术,用户能以单个物理硬件系统为基础创建多个模拟环境或者专用资源.一款名为"Hypervisor"(虚拟机监控程序)的软件可直接连接到硬件,从而将系统划分为不同的,单独安全环境,即虚拟机(VM)虚拟机.虚拟机监控程序能够将计算机资源与硬件分离并适当分配资源配备了虚拟机监控程序的物理硬件叫做"主机",而使用其资源的虚拟机则被称为虚拟客户机.这些虚拟客户机将计算资源(如CPU,内存和存储器)视为一组可进行重新分配的资源.操作员可以控制CPU,内存,存储

2021-01-23 22:53:48 1032

转载 什么是ETF以及ETF溢价,如何利用溢价套利?

什么是ETF,什么是ETF溢价以及怎么利用溢价套利1.ETF的基本介绍**交易型开放式指数基金,通常又被称为交易所交易基金(Exchange Traded Fund,简称ETF),是一种在交易所上市交易的、基金份额可变的一种开放式基金。**ETF一般都会跟踪某一个具体指数,比如说上证50ETF,这只ETF跟踪的标的资产就是上证50指数。当投资者买入了ETF份额,就相当于投资了其标的资产指数,而投资指数并没有涉及到主动选股的过程,所以属于一种被动型投资。股神巴菲特很少有公开具体推荐某只股票的,但是他在过

2021-01-23 22:39:34 4204

原创 降息和降准分别是什么意思?

降准是央bai行扩张性du货币政策之一。央行降zhi低法定存款准备dao金率,影响银行zhuan可贷资金数量从而shu增大信贷规模,提高货币供应量,释放流动性,刺激经济增长。降息是指银行利用利率调整,来改变现金流动。当银行降息时,把资金存入银行的收益减少,所以降息会导致资金从银行流出,存款变为投资或消费,结果是资金流动性增加。一般来说,降息会给股票市场带来更多的资金,因此有利于股价上涨。降息会刺激房地产业发展。假如美国降息,那么主要有以下几个方面的刺激作用:利率降低减少投资成本、增强投资需求,投资扩

2021-01-18 21:52:52 262

原创 什么是逆回购,央行为什么要实施逆回购?

逆回购,指资金融出方将资金融出给资金融入方,收取有价证券作为质押,并在未来收回本息,并解除有价证券质押的交易行为。央行逆回购,指中国人民银行向一级交易商购买有价证券,并约定在未来特定日期,将有价证券卖给一级交易商的交易行为,逆回购为央行向市场投放流动性的操作。简单解释就是主动借出资金,获取债券质押的交易称为逆回购交易,此时中央银行扮演投资者,是接受债券质押、借出资金的融出方。逆回购的主要影响:1、逆回购放量本身已表明市场资金紧缺。央行巨量逆回购意欲缓解短期流动性紧张。2、逆回购利率已成为市场新的利率

2021-01-16 23:43:47 1980

原创 什么是社会融资规模,M0、M1、M2?

首先M0,M1,M2是货币供应量的三个层次,货币供应量是指一国在某个时间点上为社会经济运转服务的货币存量,它由包括中央银行在内的金融机构供应的存款货币和现金货币两部分组成。要了解货币供应量的概念,我们还要了解下什么是流动性。所谓流动性,是指一种资产随时可以变为现金或商品,而对持款人又不带来任何损失。货币的流动性程度的强弱分别代表了货币在流通中的周转次数的多少,形成的货币购买力及其对整个社会经济活动的影响也是有差异的。现实生活中,除先钞外,银行存款和各种有价证券都有一定的流动性。中央银行一般根据宏观监测和

2021-01-15 22:45:40 4780

原创 什么是PE,PE有什么意义?

PE(Price Earnings Ratio,简称P/E),也称“本益比”,是指股票价格除以每股收益得到的比率。PE按照不同的计算方式,有三种:静态市盈率(PE静):当前总市值除以去年一年的总净利润动态市盈率(PE动):当前总市值除以明年的净利润。注意,这里明年的净利润,其实是预测的,说得难听点这就是“虚”的滚动市盈率(PE-TTM):当前总市值除以前面四个季度的总净利润一般认为,如果一家公司的股票市盈率过高,那么该股票的价格具有泡沫,,价值被高估。当一家公司增长迅速以及未来的业绩增长非常看好时

2021-01-13 23:12:03 1585

原创 什么是白马股,它与蓝筹股有什么区别?

白马股,是指长期绩优、回报率高并具有较高投资价值的股票。蓝筹股是指长期稳定增长的、大型的、传统工业股及金融股。一般来说白马股的涨幅是比蓝筹要大的,因为蓝筹太过于稳定,不会过多的下跌也不会过多的上涨,特别是大蓝筹,不会因为少量的资金进出影响多少。可以选择白马股配蓝筹股,调整资金的比例,平均风险和收益。...

2021-01-12 23:05:56 707

原创 什么是蓝筹股?

什么是蓝筹股,什么是红筹股?蓝筹股(Blue Chips)是指长期稳定增长的、大型的、传统工业股及金融股。“蓝筹”一词源于西方赌场,在西方赌场中,有三种颜色的筹码、其中蓝色筹码最为值钱。证券市场上通常将那些经营业绩较好,具有稳定且较高的现金股利支付的公司股票称为“蓝筹股”。蓝筹股有很多,可以分为:一线蓝筹股,二线蓝筹股,绩优蓝筹股,大盘蓝筹股;还有蓝筹股基金。一、二线,并没有明确的界定,而且有些人认为的一线蓝筹股,在另一些人眼中却属于二线。一般来讲,公认的一线蓝筹,是指业绩稳定,流股盘和总股本较大,也

2021-01-11 21:04:21 187 1

原创 什么是ST股票?

什么是ST股票?对财务状况或其他状况出现异常的上市公司的股票进行处理,由于“特殊处理”的英文是Special Treatment 缩写是ST,这样的股票简称为ST股。异常情况主要指连续连续两个年度的净利润均为负值,二是最近一个会计年度经审计每股净资产低于股票面值。ST股票交易规则如下:单日涨跌幅限制为%5骨片名称前面加ST上市公司的中期报告必须审计...

2021-01-10 22:01:07 150

原创 三层交换

三层交换1.三层交换机L3交换机是一种在L2交换机的基础增加了路由选择功能的网络硬件,能够通过基于ASIC和FPGA的硬件处理高速实现网络功能和转发分组。L2是指OSI参考模型中的L2,也就是数据链路层。L2交换机能够基于该层的MAC地址,进行数据帧或VLAN的传输工作。L3交换机能够基于网络层(L3)的IP首部信息,实现路由选择以及分组过滤功能。L2交换机可以通过VLAN分割广播域,但终端之间的数据帧交换必须位于同一VLAN范围内。对位于不同VLAN上的终端有通信需求,则必须使用路由功能,因此需要在

2021-01-09 21:25:03 1856 1

原创 git常见用法

git使用origin含义origin代表的是远程仓库的名称,没什么特殊的含义,可以使用git remote -v查看origin的含义 git remote -vorigin [email protected]:root/ctcc_4.0.git (fetch)origin [email protected]:root/ctcc_4.0.git (push)创建分支git branch 分支名称例如:git branch wll从已有分支创建新分支git checkout -b de

2021-01-09 21:18:13 106

原创 组播原理

组播原理1.概述想对于单播,广播方式减少了发送源的处理,降低发送源的负荷.但是采用广播方式,网络中所有主机都会收到广播数据,而不管是否需要接收.这样不仅数据的安全性得不到保证,而且造成网络中信息泛滥,浪费带宽资源.单播和组播均不能以最小的网络开销实现数据的单点发送,多点接收,IP组播技术的出现解决了这个问题.组播指发送源将产生的单一IP数据包通过网络发送给一组特定接收者的网络传输方式.在进行点到多点传输时,发送源不需要关心接收者的数目,仅需要发送一份报文;路由器仅关心接口下是否有接收者,同样不需要关心

2021-01-09 20:44:07 4949 2

原创 Serdes原理

Serdes原理1.为什么需要Serdes电子系统中,传送数据的方式一般有两种方式,串口或者并口,具体定义不区分。先来说一下同步与异步通信。二者的区别在于是否有时钟线来对齐数据,采样数据。一般而言,并行通信都会有时钟线用来采样,现在的系统中最常见的就是DDR。对于系统的互联,随着性能的提高,速率当然要求越来越高。对于理想状态而言,自然是并口要快于串口,其缺点也很明显,就是需要更多的接口资源。在不断提高信号速率的过程中,有几个条件会限制并行通信速率的提高时钟到达两个芯片的传播延时不相等(cloc

2020-12-26 21:40:22 4417

原创 以太网小知识

网络通信设备小知识1.网络各层对应的数据形式以及网络协议2.以太网标准目前以太网指的是采用以太网帧格式进行通信的网络3.以太网标准命名规则IEEE 802.3标准根据使用的传输线缆和传输线路的不同,有10BASE-T、10BASE-TX,具体的命名规则如下:3.1 调制方式3.2 传输媒介3.3 编码体系3.4 lane4.千兆以及万兆以太网4.1主要的千兆以太网标准4.2万兆以太网2002年,IEEE 802.3委员会制定了最大传输速率位10Gbit/s的万兆以太

2020-11-26 22:32:39 1629

原创 linux内核互斥同步之互斥体

互斥体在linux内核中,除信号量以外,还有一个类似的实现叫作互斥体Mutex。信号量的count成员可以初始化为1,并且down和up操作也可以实现类似Mutex的作用,那为什么还可以单独实现Mutex机制,Mutex的语义相对于信号量要简单轻便一些,在锁争用激烈的测试场景下,Mutex比信号量执行速度快,可扩展性更好。1.互斥体定义struct mutex { /* 1: unlocked, 0: locked, negative: locked, possible waiters */ a

2020-11-03 22:21:19 1236

转载 linux内核总线驱动模型-总线篇

总线是处理器与设备之间的通道,在设备模型中,所有的设备都是通过总线相连的。在设备模型中,总线由bus_type表示struct bus_type { const char *name; const char *dev_name; struct device *dev_root; struct device_attribute *dev_attrs; /* use dev_groups instead */ const struct attribute_group **bus_groups;

2020-11-03 22:17:38 283

转载 linux内核总线驱动模型-设备篇

上篇主要对总线进行了一些梳理,现在来看看内核对于设备的处理过程。struct device { struct device *parent; /*指向父上游的指针*/ struct device_private *p; struct kobject kobj; /*用它联系到sysfs中*/ const char *init_name; /* initial name of the device */ const struct device_type *type; /*设备属性文件

2020-11-03 22:16:02 270

转载 linux内核总线驱动模型-驱动篇

如果你了解了前面总线、设备模型,分析总线设备驱动模型的driver相对来说会轻松很多。开始也是看看其数据结构。struct device_driver { const char *name; /*驱动的名字*/ struct bus_type *bus; /*驱动属于的总线类型*/ struct module *owner; const char *mod_name; /* used for built-in modules */ bool suppress_bind_attrs

2020-11-03 22:15:17 331

转载 linux内核总线驱动模型-platform篇

linux从2.6开始就加入了一套新的驱动管理和注册机制平台总线,是一条虚拟的总线,设备用platform_device表示,驱动用platform_driver进行注册。于传统的总线/设备/驱动程序机制相比,平台由内核进行统一管理,在驱动中使用资源,提高了代码的安全性和可移植性。下面来看看内核时怎么注册platform总线的过程:struct device platform_bus = { .init_name = "platform",};struct bus_type platform_b

2020-11-03 22:14:23 434

原创 linux互斥同步之等待队列与Completion

等待队列并不是互斥机制,之所以放在这里,是因为等待队列是一些内核设施的实现机制,下面要讲的完成接口completion就是利用工作队列实现的。1.等待队列等待队列本质上是双向链表,由等待队列头和队列节点构成,当运行的进程要获得某一资源而暂不可得时,进程有时候需要等待,此时它可以进入睡眠状态,内核为此生成一个新的等待队列节点将睡眠的进程挂载到等待队列中。1.1队列头队列节点等待队列头定义:struct __wait_queue_head { spinlock_t lock; struct li

2020-09-07 19:14:21 563

原创 linux内核互斥同步之信号量

相对于自旋锁,信号量的最大特点是允许调用它的线程进入睡眠状态,这意味着试图获得某一信号量的进程会导致对处理器有用权的丧失,也就是出现了进程的切换。1.信号量定义与初始化信号量定义如下:struct semaphore { raw_spinlock_t lock; unsigned int count; struct list_head wait_list;};其中,lock是自旋锁变量,用于实现对信号量count的互斥操作。无符号整型变量count用于表示通过该信号量允许进入临界区的

2020-08-18 20:15:24 186 1

原创 linux内核数据结构之红黑树

红黑树1.概述红黑树是一颗二叉搜索树,它在每个节点上增加了一个存储位表示节点的颜色,可以是RED或BLACK。通过对任何一条从根到叶子的简单路径上各个节点的颜色进行约束,红黑树确保没有路径会比其他路径长出2倍,因而是近乎平衡的2.红黑树性质一个红黑树是满足下面红黑性质的二叉搜索树:每个节点或是红色,或是黑色根节点是黑色每个叶子节点是黑色的(叶子是NIL节点)如果一个节点是红色的,则它的两个子节点都是黑色的对每个节点,从该结点到其所有后代结点的简单路径上,均包含相同的黑色结点每个红黑树

2020-08-09 22:35:11 595

转载 内存屏障今生之Store Buffer, Invalid Queue

在「前置内容」中,我们了解到「最原始」的cpu是如何在缓存一致性协议MESI的指导下工作的,同时我们也发现此时cpu的性能因为同步请求远程(其他cpu)数据而大打折扣。本文章将介绍cpu的优化过程,你将了解到硬件层面的优化——Store Buffer, Invalid Queue,以及软件层面的优化——cpu内存屏障指令。最原始的架构性能优化之旅——Store Buffer当cpu需要的数据在其他cpu的cache内时,需要请求,并且等待响应,这显然是一个同步行为,优化的方案也很明显,采用异步。思路大概是在

2020-08-03 23:23:34 13272 23

转载 内存屏障前世-缓存一致性协议

现代计算机都是多核cpu,cpu需要和内存交互,但内存相对cpu的速度实在太慢,于是cpu和内存之间还有cache层,每个cpu都有属于自己的cache,cache由cache line组成,每个cache line 64位(根据不同架构,也可能是32位或128位),每个cache line知道自己对应什么范围的物理内存地址,当cpu需要读取某一个内存地址的值时,它会把内存地址传递给一级cache,一级cache会检查它是否有这个内存地址对应的cache line。如果没有,它会以cache line为单位

2020-08-03 23:19:19 1432 1

原创 Linux内核互斥同步之自旋锁

1.自旋锁​ 原子变量的适用范围主要是计数,但是代码临界区往往是一个操作的集合,原子变量在此显然是不合适的,需要使用锁机制来完成同步工作,spin_lock就是内核中比较常见的锁机制。​ spin_lock锁在同一个时刻只有一个内核代码路径持有,如果还有内核路径试图获取已经被持有的spin_lock,那么该内核代码路径需要一直自旋等待,直到锁持有者释放该锁。如果该锁没有被被人持有,可立即获得1.1自旋锁定义自旋锁的结构体如下:typedef struct spinlock { struct

2020-08-03 22:37:03 192

mingw-for-qt

mingw 本地安装包,解压后,可以直接安装,可以用于qt等工具

2018-10-29

uboot-s3c2440

支持s3c2440的uboot,内置了nand flash相关命令,以及通过ftp下载版本

2017-12-19

交叉编译工具链

S3C2440 专用编译交叉工具链,与韦东山的嵌入式linux应用程序开发配套使用,可以用于编译裸板程序,以及boot,内核

2017-09-19

S3C2440裸板程序

S3C2440裸板程序

2017-07-31

tcl-8.5.14

tcl-8.5.14

2017-04-05

v2lin源代码

vxworks 的兼容接口代码 在linux上

2016-08-30

空空如也

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

TA关注的人

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