精华内容
下载资源
问答
  • 要想学习嵌入式Linux应用层开发,首先要区分好应用层和驱动层之间的关系。我们在本科阶段学习51等较简单的单片机时,都是把应用层和驱动层混在一个文件里写的。比如拿下面的I2C程序为例: #include<reg51.h>...

    1 应用层与驱动层

    要想学习嵌入式Linux应用层的开发,首先要区分好应用层和驱动层之间的关系。我们在本科阶段学习51等较简单的单片机时,都是把应用层和驱动层混在一个文件里写的。比如拿下面的I2C程序为例:

    #include<reg51.h>
    #include<intrins.h>
    #define uchar unsigned char 
    #define nop _nop_()
     
    sbit sda = P2^1;//sda接在P2.1	   
    sbit scl = P2^0;//sda接在P2.0
     
    void delay1()//用于每个语句间的延时
    {
    	;//空语句
    	;
    	;
    }
     
     
    void delay(unsigned int i )//用于LED亮灯延时
    {
    	while(i--);
    }
     
    /*scl在高电平期间,sda由高电平变成低电平时,I2C启动*/
    void start_24c02()	  //用于24C02的启动
    {
    	scl = 1;
    	delay1();	  
    	sda = 1;
    	delay1();
    	sda = 0;
    	delay1();
    	
    }
     
     
    /*scl在高电平期间,sda由低电平变成高电平时,I2C停止*/
    void stop_24c02()	//用于24c02启动
    {
    	sda = 0;
    	delay1();
    	scl = 1;
    	delay1();
    	sda = 1;
    	delay1();
    }
     
     
    /*scl在高电平期间,sda变成低电平表示应答*/
    void ack_24c02()	//24C02的应答
    {
    	uchar i = 0;
    	scl = 1;
    	delay1();
    	while((sda ==1)&&(i<200)) //(i<200)表示:如果期间不给应答信号,则程序会一直停在这里,为了避免长时间的等待应答,在此处增加了一个延时
    	{
    		i++;
    	}
    	scl = 0;
    	delay1();
     
    }
     
    /*I2C总线初始化,将I2C总线全部设置为高电平,来释放总线*/
    void init_24c02()//I2C总线的初始化
    {
    	sda = 1;
    	delay1();     
    	scl = 0;
    	delay1();	
    }
     
     
    /*读取一个字节*/
    uchar read_onebyte_24c02()
    {
    	uchar i,date;
    	scl=0;
    	delay1();
    	sda=1;
    	delay1();	
    	for(i = 0;i<8;i++)	             
    	{
    		scl = 1;					  
    		delay1();										
    		date=(date<<1)|sda;		  		  
    		scl = 0;
    		delay1();			
    		
    	}
    	delay1();			
    	return date;
    	
    }
     
     
    /*写一个字节*/
    void write_onebyte_24c02(uchar date)
    {
    	uchar i,temp;
    	temp = date;
    	for(i=0;i<8;i++)				 
    	{
    		temp = temp<<1;	
    		scl = 0;
    		delay1();
    		sda =CY;  //temp 左移一位,将移出的最高位字节放到PSW的CY中
    		delay1();
    		scl = 1;
    		delay1();
    	}
    	scl = 0;
    	delay1();
    	sda = 1;
    	delay1();	
    }
     
     
    /*对从机的某一地址的某一位置写入一个字节
    1、找到要操作地址的从机,同时进行写操作0xA0
    2、要写入的位置add
    3、要写入的数据dat
    */
    void write_add_dat_24c02(uchar add,uchar dat)
    {
    	start_24c02();					
    	write_onebyte_24c02(0xA0);		 //进行写操作0XA0,24C02 的高四位地址为1010;后三位地址A2、A1、A0全部接地,所以为000,;由于为写操作,所以最后一位也为0
    	ack_24c02();					
    	write_onebyte_24c02(add);		
    	ack_24c02();					 
    	write_onebyte_24c02(dat);		
    	ack_24c02();					 
    	stop_24c02();					 
    }
     
    /*读取某地址的一个字节
    1、找到要操作地址的从机,同时进行写操作0xA0
    2、要写入的地址add
    3、对选中地址的从机进行读操作 0xA1
    4、调用读取一个字节函数read_onebyte_24c02(),进行数据读取
    */
    uchar read_add_dat_24c02(uchar add)
    {
    	uchar dat;
    	start_24c02();					 
    	write_onebyte_24c02(0xa0);		 
    	ack_24c02();					 
    	write_onebyte_24c02(add);		 
    	ack_24c02();					 
    	start_24c02();					 
    	write_onebyte_24c02(0xa1);	 //进行读操作0XA0,24C02 的高四位地址为1010;后三位地址A2、A1、A0全部接地,所以为000,;由于为读操作,所以最后一位为1
    	ack_24c02();					 
    	dat = read_onebyte_24c02();	
    	ack_24c02();
    	stop_24c02();					 
    	return (dat);
    }
     
     
    void main()
    {
    	init_24c02();						 //初始化I2C 
    	while(1)
    	{
    		write_add_dat_24c02(3,0x0f);	 //对地址3进行写入数据
    		delay(200);						 
    		write_add_dat_24c02(4,0xf0);	 //对地址4进行写入数据
    		delay(200);						
    		P3 = read_add_dat_24c02(3);		 //读取地址3的数据
    		delay(55000);					 //保持灯亮
    		P3 = read_add_dat_24c02(4);		 //读取地址4的数据
    		delay(55000);					//保持灯亮
    	
    	}
    }
    

    该程序所要实现的功能是将数据0x0f和0xf0分别写入地址3和地址4。这个目标可以分为两部分执行:第一部分是计算出要存储的数据(由于该程序要存储的数据已经给出来了,就不用算了,但在实际工程中,这些数据一般是要自己获取的),第二部分是按照I2C协议的时序将这些数据发送给硬件。于是,上面提到的第一部分被称为应用层开发,第二部分被称为驱动层开发。

    我们观察以上示例代码,发现作者还是很规矩地把驱动层程序编程了函数的形式(例如write_add_dat_24c02()),但应用层和驱动层的程序终究还是存储在同一个c文件中。而在Linux系统中,驱动层和应用层分的很清楚,它们分别保存在两个不同的文件中。并且应用层的程序运行在用户空间中,驱动层的程序则是被编进了Linux内核里。在实际调用程序的过程中,由应用层程序执行数据计算等任务,任务执行完后通过一个接口将算好的数据发送给驱动层程序,最后由驱动层程序进行硬件实现。这样的分层有一个好处就是对于调用同一个硬件的应用程序,他的驱动层可以不用修改,只修改应用层程序就可以了

    由于Linux操作系统现在发展的已经比较完善了,很多硬件设备都能在网上找到写好的驱动,因此在进行嵌入式Linux开发的过程中,一般更多地进行应用层的开发,只是当找不到合适的驱动时,才会在现有驱动程序的基础上进行适当改写,以使其适应我们的硬件。

    2 Linux的文件结构

    Linux下一切皆文件。在Linux系统中,不仅像文本文档等传统文件是文件,各种设备也可以被映射成一个文件。通过对设备文件进行操作就可以实现对设备的操作。因此,了解Linux的文件结构非常重要。

    2.1 目录

    目录是用来保存其他文件节点(inode)号和名字的文件,目录文件中的每项数据都指向一个文件的节点,删除一个文件就相当于删除了目录文件中对应的节点项。

    那么问题来了,什么是文件的节点(inode)呢?文件节点其实就是保存了文件的属性的一个东西,这些属性包括文件的创建/修改日期、访问权限、文件位置、文件长度等等。Linux在寻找某文件或对,某个文件进行操作时,不是去寻找文件的名字,而是去寻找文件对应的节点。

    Linux系统中最常用的目录之一就是家目录。Linux系统会为每个用户创建一个家目录。比如你的用户名叫neil,那你的家目录就是/home/neil/。很多Linux系统,比如Ubuntu,都允许用~ 符号代替用户的家目录。然而,标准库函数不能识别文件参数中的~ 符号,因此在程序中不要使用波浪线符号代替家目录。

    所有目录的最顶层是根目录。在它下面包含了存放系统程序的/bin目录、存放系统配置文件的/etc目录、存放系统函数库的/lib目录和存放代表物理设备的设备文件的/dev目录等等。

    2.2 文件和设备

    在Linux中,设备可以被映射成一个文件。例如,我们可以使用以下命令将CD-ROM驱动挂载为一个文件:

    mount -t iso9660 /dev/hdc /mnt/cdrom
    cd /mnt/cdrom
    

    这时我们进入到/mnt/cdrom下就可以查看CD-ROM中包含的目录,只不过其中的目录都是只读的。

    Linux中有3个比较重要的设备文件:/dev/console、/dev/tty和/dev/null。

    1. /dev/console
      这个设备代表系统控制台。错误信息和诊断信息通常会被发到这个设备。

    2. /dev/tty
      如果一个进程有控制终端的话,文件/dev/tty就会作为控制终端的别名。但对于系统自动运行的进程和脚本,它们就没有控制终端,不需要访问设备/dev/tty。

    3. /dev/null
      这个设备是“空”设备,所有写向这个设备的输出都会被丢弃,而读这个设备会返回一个文件尾标志。通常用于作复制空文件的源文件,或将不需要的输出重定向到此文件。

    设备可以分为字符设备和块设备,两者的区别在于访问设备时是否需要一次读写一整块。字符设备通常是普通的设备,块设备通常是硬盘、SD卡等存储设备。

    展开全文
  • 如果从应用层的应用开发出发,建议先熟悉API函数。如果从应用层的界面开发出发,则建议学习Qt,WinCE或Android等。 但真实的嵌入式开发,熟悉以上还是远远不够的,建议如下学习曲线: 第一节段 熟练使用Linux操作...
  • 嵌入式软件应用程序开发框架浅见

    千次阅读 2016-10-30 20:21:04
    最近在构思一个嵌入式系统上的应用程序开发框架,这个不单单是做一个应用程序的框架,是一个系统的。 要达到的目的就是为业务实现部分的程序提供一个框架,这个框架这么说是一个很模糊打概念,下面详细介绍一下这个...

     

     

    最近在构思一个嵌入式系统上的应用程序开发框架,这个不单单是做一个应用程序的框架,是一个系统的。

    要达到的目的就是为业务实现部分的程序提供一个框架,这个框架这么说是一个很模糊打概念,下面详细介绍一下这个框架。

    框架要实现一些常用的功能封装:
    1. 进程间通信的代码,用于实现进程间数据交互;
    2. 实现定时器,做开发时间久了,会发现在业务功能实现的过程中,有好多地方会用到定时器,比如某个数据需要定时发送,而有的数据只需要定时发送几次等;
    3. 数据处理框架,这个功能是处理基础数据用的框架,基本思想上注册回调机制,有了它,业务代码里就不会再出现长长的switch……case了。
    4. 事件状态管理框架,这个功能上用于管理系统内部的状态,基本思想上订阅发布机制,有了它,代码就不用再去请求一堆状态数据了,只需要把你关注打事件或者状态注测一下,当事件发生时,就主动通知给你了,这样处理起来感觉顺一些。
    5. 线程封装,考虑这个部分也是因为之前在写程序的过程中,有好多地方需要启动一个临时线程,处理的数据结束之后就自己退出,自动回收资源。其实这个的封装,也是为了业务代码书写的时候不用再去写线程相关打一堆api和参数。

    基本就以上几个部分,基于这些年打开发经验,感觉嵌入式上的程序模块分三类:
    1. 基础数据采集模块;
    提供支持系统业务功能的基础数据,比如导航设备,GPS数据采集的程序可以算这一类。

    2. 业务数据处理模块
    这一部分一般代码比较多,也是主要的工作量所在

    3. 辅助模块
    这部分主要是给业务数据处理模块提供一些辅助功能,比如:数据/参数存储等模块,也就是这些模块是其使用者请求什么他就返回什么,自身不具有复杂打逻辑处理。

    最后对写程序的两句总结(这个是同事总结的):
    分离关注点,消除重复。

    这短短打两句话,蕴含了多少编程世界的哲学!

    其中包含编程原则,也包含设计模式的思想,还有代码重构的思想!

     

     

    个人微信服务号同步推送文章(微信公众号:fensnote):

     

    展开全文
  • 如果从应用层的应用开发出发,建议先熟悉API函数,如果从应用层的界面开发出发,则建议学习Qt,WinCE或Android等。但真实的嵌入式开发,熟悉以上还是远远不够的,建议如下学习曲线. 第一节段 熟练使用Linux操作...

     如果从应用层的应用开发出发,建议先熟悉API函数,如果从应用层的界面开发出发,则建议学习Qt,WinCE或Android。但真实的嵌入式开发,熟悉以上还是远远不够的,建议如下学习曲线.


    第一节段 熟练使用Linux操作系统


    学习Linux操作系统的概念和安装方法,理解Linux下的基本命令、管理配置和编辑器,包括VI编辑器,GCC编译器,GDB调试器和 Make 项目管理工具等知识。

    第二阶段 精通linux下C语言


    通过大量编程实例重点学习C语言的高级编程知识,包括函数与程序结构、指针、数组、常用算法、库函数的使用等知识,另外,还要学习数据结构的基础内容,包括链表、队列、栈、树、哈希表、图等内容。

    第三阶段 嵌入式Linux应用编程


    精通嵌入式Linux下的程序设计,精通嵌入式Linux开发环境,强化对Linux应用开发的理解和编码调试的能力,包括系统编程、文件I/O、多进程和多线程、网络编程、GUI图形界面编程、数据库

    第四阶段 嵌入式入门阶段-ARM体系结构


    ARM处理器体系结构、编程环境、指令集、寻址方式、调试、汇编和混合编程。ARM的常用接口开发及硬件电路设计基础(包括IO、串口、看门狗、实时时钟、SPI、IIC、扫描键盘、FLASH操作等),为以后的设备驱动的学习打好基础。

    第五阶段 嵌入式高级阶段-Linux内核和驱动开发


    深入内核细节,了解Linux相关运行机理,为后面的驱动开发打好理论基础,内容包括内核源码结构、内存管理、进程管理、中断管理、系统调用、内核同步、时钟和定时器管理、信号、调度、进程间通信、文件系统和I/O设备管理等方面的内容。

    第六阶段 嵌入式硬件开发(学软件的可以不学,但了解硬件对学嵌入式软件有更深入的了解,尤其对系统的理解更深入。)


    内容包括单片机的学习,电路分析和电路的原理,PCB设计,主要包括Altium Designed,电子设计基础知识,原理图初步设计,进阶,提高,深入,pcb库的设计,集成库的作用和制作,pcb设计初步,PCB设计提高,PCB深入,对FPGA和CPLD系统的相关基础概念等

    第七阶段 嵌入式深入阶段


    变成高手,你还要进一步学习内核和系统,内容包括计算机系统结构和汇编,linux内核编程,linux内核的基础知识,汇编及保护模式,linux内核体系结构,linux引导程序分析,linux内核代码分析,linux块设备驱动程序分析等

    第八阶段  实践阶段


    其实就是循序渐进,先学好基础理论知识,然后动手试验,最后总结试验结果,验证所学知识并积累经验

    展开全文
  • 嵌入式应用层开发要学习什么

    千次阅读 2016-12-20 16:48:22
    如果从应用层的应用开发出发,建议先熟悉API函数,推荐《UNIX环境高级编程》,现在应该是第3版了,如果从应用层的界面开发出发,则建议学习Qt,WinCE或Android等。 但真实的嵌入式开发,熟悉以上还是远远不够的,...
    

                                                

    如果从应用层的应用开发出发,建议先熟悉API函数,推荐《UNIX环境高级编程》,现在应该是第3版了,如果从应用层的界面开发出发,则建议学习Qt,WinCE或Android等。
    但真实的嵌入式开发,熟悉以上还是远远不够的,建议如下学习曲线

    第一节段 熟练使用Linux操作系统
    学习Linux操作系统的概念和安装方法,理解Linux下的基本命令、管理配置和编辑器,包括VI编辑器,GCC编译器,GDB调试器和 Make 项目管理工具等知识。

    第二阶段 精通linux下C语言
    通过大量编程实例重点学习C语言的高级编程知识,包括函数与程序结构、指针、数组、常用算法、库函数的使用等知识,另外,还要学习数据结构的基础内容,包括链表、队列、栈、树、哈希表、图等内容。

    第三阶段 嵌入式Linux应用编程
    精通嵌入式Linux下的程序设计,精通嵌入式Linux开发环境,强化对Linux应用开发的理解和编码调试的能力,包括系统编程、文件I/O、多进程和多线程、网络编程、GUI图形界面编程、数据库。

    第四阶段 嵌入式入门阶段-ARM体系结构
    ARM处理器体系结构、编程环境、指令集、寻址方式、调试、汇编和混合编程。ARM的常用接口开发及硬件电路设计基础(包括IO、串口、看门狗、实时时钟、SPI、IIC、扫描键盘、FLASH操作等),为以后的设备驱动的学习打好基础。

    第五阶段 嵌入式高级阶段-Linux内核和驱动开发
    深入内核细节,了解Linux相关运行机理,为后面的驱动开发打好理论基础,内容包括内核源码结构、内存管理、进程管理、中断管理、系统调用、内核同步、时钟和定时器管理、信号、调度、进程间通信、文件系统和I/O设备管理等方面的内容。

    第六阶段 嵌入式硬件开发(学软件的可以不学,但了解硬件对学嵌入式软件有更深入的了解,尤其对系统的理解更深入。)
    内容包括单片机的学习,电路分析和电路的原理,PCB设计,主要包括Altium Designed,电子设计基础知识,原理图初步设计,进阶,提高,深入,pcb库的设计,集成库的作用和制作,pcb设计初步,PCB设计提高,PCB深入,对FPGA和CPLD系统的相关基础概念等

    第七阶段 嵌入式深入阶段
    变成高手,你还要进一步学习内核和系统,内容包括计算机系统结构和汇编,linux内核编程,linux内核的基础知识,汇编及保护模式,linux内核体系结构,linux引导程序分析,linux内核代码分析,linux块设备驱动程序分析等

    第八阶段  实践阶段
    其实就是循序渐进,先学好基础理论知识,然后动手试验,最后总结试验结果,验证所学知识并积累经验

    希望对你有帮助,加油!

    展开全文
  • 嵌入式应用层开发应该学习什么?

    千次阅读 2019-09-12 04:36:45
    从事嵌入式开发,由于嵌入式是软硬件结合的,因此要熟练掌握开发相关内容并不容易,可以参考下面这个学习曲线: 1、熟练使用Linux操作系统:学习Linux操作系统的概念和安装方法,理解Linux下的基本命令、管理配置和...
  • 从CSDN各个博客上摘选的一些容易做错的嵌入式软件的笔试题,做一下记录,让自己记住。 文章转自:嵌入式经典面试题。 1、用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) 解答:这一...
  • 嵌入式 Linux 应用程序开发概览

    千次阅读 2018-12-07 08:31:42
    这是我给公司研发部同事的一个分享培训课程,把内容大纲分享出来。 知识图谱 ... 软件工程 自学内容 ARM 指令集、体系架构 ARM 外设 Linux 内核、驱动 Linux 系统接口编程 Linux 网络编程 Qt ...
  • 基于ARM的嵌入式Linux应用程序开发

    千次阅读 2017-02-09 16:36:44
    嵌入式Linux系统也蓬勃发展,不仅继承了Linux源码开放、内核稳定高效、软件丰富等优势,还具备支持广泛处理器结构和硬件平台、占有空间小、成本低廉、结构紧凑等特点。 1 ARM处理器及开发板  在嵌入式领域,...
  • 嵌入式linux的开发流程以及linux应用层内容

    万次阅读 多人点赞 2019-04-01 18:19:21
    嵌入式linux开发流程: 1.搭建前期的开发环境,例如搭建linux主机环境,交叉编译器的安装,还有一些常用的开发辅助软件如source insight等等。 2.学习对硬件的直接操作,这里和单片机操作类似,我们需要查看原理图...
  • 为了紧跟多媒体软件开发技术越来越强的脚步,本文提出了一种基于嵌入式系统的手机应用层多媒体软件的设计和系统开发。该系统的硬件部分的主要由一个单片机或微控制器(MCU)的处理器组成,软件部分则包括了所采用的...
  • 这样的代码不应该需要太多积分,但时间久了积分上去了,特意来减少所需积分,希望大家喜欢。...嵌入式开发框架之模块化代码实现 仿linux设备驱动框架编写 linux模块化编程 代码开发框架 linux驱动学习
  • 嵌入式linux系统应用开发

    千次阅读 2020-02-02 01:09:44
      平时大家说的嵌入式其实范围比较广的,是一种软硬件可裁剪,以应用为中心开发的专用系统,硬件平台可以是单片机,或者以ARM系列的处理器。单片机一般直接裸奔程序,不过现在有了好多基于单片机的系统,最近比较...
  • 基于ARM的嵌入式Linux应用程序开发研究[日期:2008-12-8]来源:中电网 作者:董玲,朱宏,杨忠孝[字体:大 中 小] 0 引 言当今社会,嵌入式系统已经渗透到人们工作、生活中的各个领域,嵌入式处理器已占分散处理器...
  • 嵌入式软件开发测试要点

    千次阅读 2010-03-01 15:57:00
    嵌入式开发的现状嵌入式软件从业者小众 嵌入式开发可能是目前软件开发中的小众开发者了吧。我经常到一些论坛上逛,感觉最多的开发者是集中在Web应用开发上,其次是Windows应用程序开发,再次才是嵌入式系统。目前...
  • 嵌入式软件开发之程序架构(一)

    千次阅读 多人点赞 2019-02-17 18:00:41
    该内容是工作一年来通过上网或其他方式不断搜索、实践、总结出来的嵌入式软件开发经验(本文仅适用于单片机的裸机开发),希望能帮到正在学习这方面的朋友,如有不好的地方,请多多见谅;在嵌入式软件开发过程中,...
  • 研究从软件体系结构和应用开发过程两个角度对嵌入式应用开发作了改进和规范。在软件体系结构上采用了模式和映像模式相结合的架构。在开发过程的规范和复用上采用了集成开发环境的思想。从改进后在实际应用开发中的...
  • 嵌入式系统软件敏捷开发

    千次阅读 2012-09-17 20:32:59
    本文综述了嵌入式系统敏捷开发(Agile Development),敏捷宣言,敏捷的原则,很多的敏捷开发的实践习惯,敏捷开发与瀑布开发流程的区别,敏捷的任务stories划分,并行开发、敏捷的时间安排,敏捷的通信交流方式等等。...
  • 嵌入式应用软件架构设计

    万次阅读 多人点赞 2017-08-09 18:02:33
    要做到嵌入式应用的代码逻辑清晰,且避免重复的造轮子,没有好的应用架构怎么...如果没有好的架构,应用层中穿插着硬件驱动层的代码,看着会是一片混乱,逻辑不清,代码维护起来会很困难。 这里总结下我的嵌入式程...
  • 嵌入式软件开发工程师 工作内容 从事数据产品嵌入式(底层)软件开发和设计工作; 负责数据产品相关软件子系统的方案设计; 负责数据产品相关的技术交流、标准及专利相关工作; 负责嵌入式软件系统的...
  • 嵌入式软件开发工程师(BSP)的题目类型来说,多媒体&智能应用的笔试题在前面的选择题上类型差不多,主要是两条简答题。前者是偏向于Linux驱动方面,后者是偏向于视频/音频的采集或者编码方面。总体来说,大差...
  • 嵌入式软件开发内容进阶

    千次阅读 2018-05-07 15:51:20
    嵌入式软件”这个名词很笼统,但一般业内的理解就是直接与硬件打交道的软件。大部分嵌入式软件工程师基本工作内容如下:裸机——RTOS——Linux,以及一些新生的概念。1、裸机开发裸机开发看起来随意性很大,因为...
  • 10种受欢迎的嵌入式软件开发工具

    万次阅读 2019-10-18 18:44:01
    本篇博客主要谈嵌入式软件开发工具。解释什么是嵌入式系统以及需要什么工具能够构建出来一个。你将了解到现在IT市场上最受欢迎的、可用的嵌入式系统软件开发工具。 什么是嵌入式软件 桌面软件是为计算机编写的,而...
  • 我的嵌入式软件开发框架浅见

    万次阅读 2018-06-06 12:28:05
    因主要是从事应用软件开发,现在讲的是嵌入式应用软件框架。一般好的程序框架,不单单只是应用软件的框架,是一个系统的。如linux系统架构,由于本人才疏学浅只能自我编写个应用程序的浅见。 1.需要有分离分层的...
  • 本来对于嵌入式开发的要求就比较高,学员选择嵌入式软件开发应该也是深思熟虑的结果,那么在这里如果你在掌握了嵌入式软件开发的知识点的话,你就真的事半功倍了,下面一起来了解下嵌入式软件开发需要学习的知识点吧...
  • 以STM32为例,打开网络上下载的例程或者是购买开发板自带的例程,都会发现应用层中会有stm32f10x.h或者stm32f10x_gpio.h,这些文件严格来时属于硬件层的,如果软件层出现这些文件会显得很乱。使用过Linux的童鞋们...
  • 关于嵌入式软件开发的一些思考

    千次阅读 2013-12-07 23:03:04
    今天是第一次开始写技术博客, a ...同时也想鼓励那些仍然身处迷雾苦苦挣扎的摸索者,只要坚定信心不动摇,终有一天能够登堂入室,苦尽甘来,从此终身享受嵌入式软件开发这个超级好玩的游戏。不必担心,不要沮丧,虽然编

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 53,768
精华内容 21,507
关键字:

嵌入式软件应用层开发