图8.4socket套接字发送、接收数据示意图2.套接字缓冲区的特性◆缓冲区在每个TCP套接字中单独存在;◆I/O缓冲区在创建套接字时自动生成;◆即使关闭套接字也会继续传送输出缓冲区中遗留的数据;◆关闭套接字将丢失输入缓冲区中的数据。......
2023-11-19
IO口的操作是硬件控制的基础,本例子是一个最简单的IO口操作。4个LED灯分别用4个GPIO口来进行单独控制,通过I/O控制发光二极管的亮和灭。电路原理图如图4.7所示。
图4.7 GPIO与LED灯的连接
通过电路原理图可以得到的物理连接如表4.2所示。
表4.2 物理连接对应
如表4.3所示,GPH3相关的寄存器有:GPH3CON,GPH3DAT,GPH3PUD以及GPH3DRV。通过对不同寄存器的操作,可以配置GPIO的功能。
表4.3 GPH3寄存器族
表4.4 GPH3CON端口配置寄存器
表4.5 GPH3DAT端口数据寄存器
表4.6 GPH3PUD端口上拉寄存器
表4.7 GPH3DRV端口驱动能力寄存器
本例通过使用mmap方法实现不经过内核驱动直接在用户区映射的方式来控制寄存器,从而最终控制LED灯的功能。由于在应用程序中不能直接操作物理地址,因此通过mmap将一个文件或者其他对象映射进物理地址,应用程序就可以直接操作地址,从而达到控制寄存器的目的。在向端口写函数port_write中我们可以看到mmap方法。
port_write中的mmap函数有如下说明:
void∗mmap(void∗start,size_t length,int prot,int flags,int fd,off_t offset);
start:映射到进程空间的虚拟地址;
length:映射空间的大小;(www.chuimin.cn)
prot:映射到内存的读写权限;
flags flags:可取MAP_SHARED,MAP_PRIVATE,MAP_FIXED,如果是MAP_SHARED。此进程对映射空间的内容修改会影响到其他的进程,即对其他的进程可见,而MAP_PRIVATE,此进程修改的内容对其他的进程不可见;
fd:要映射文件的文件标识符;
offset:映射文件的位置,一般从头开始。而在设备文件中,表示映射物理地址的起始地址。
程序中另外的主要调用的函数定义分别如下:
LED灯分别用4个GPIO接口进行独立控制,实现一个一个连续单独亮起,程序名称为led4,工程文件列表makefile文件内容如下:
主程序如下:
运行上面程序,在终端中显示结果如下所示。
[root@CVTECH/]#.led4
LED1
LED2
LED3
LED4
LED1
LED2
LED3
LED4
有关ARM嵌入式系统原理与应用的文章
图8.4socket套接字发送、接收数据示意图2.套接字缓冲区的特性◆缓冲区在每个TCP套接字中单独存在;◆I/O缓冲区在创建套接字时自动生成;◆即使关闭套接字也会继续传送输出缓冲区中遗留的数据;◆关闭套接字将丢失输入缓冲区中的数据。......
2023-11-19
ARM微处理器已经遍及工业控制、消费类电子通信系统、网络系统、无线系统各类产品市场,基于ARM技术的微处理器应用占据了32位RISC微处理器80%以上的市场份额。ARM嵌入式技术在联网方面的优势,为弧焊电源实现网络化控制奠定了基础。ARM9可以达到180~200MHz的工作速率,它能驱动的周边装置比ARM7多,应用范围也比较广。ATMEL公司的AT91AM9200是基于ARM9的,具有丰富的接口功能。ARM芯片通信接口能力强,一般用于焊接过程及设备人机界面系统的核心芯片。......
2023-06-26
Web服务器和HTTP服务器可以说是同一个东西,当然非得细分的话,HTTP服务器是建立在HTTP协议之上的提供文档浏览的服务器,更多的是提供静态的文件。而Web服务器涵盖了HTTP服务器,Web服务器不仅能够存储信息,还能在用户通过Web浏览器提供的信息的基础上运行脚本和程序。图11.2W eb服务器工作原理图我们以浏览器作为客户端,完成Web服务的工作流程讲述。Web服务器是以短连接为主,并且获取的数据到达浏览器的那一刻一定是静态的不变的。......
2023-11-19
编译完成程序后,在工程可执行程序所在文件夹下双击hello程序出现Qt版Hello World程序界面,整个Qt应用程序窗体都被一个按钮覆盖,这是程序第13行设置窗体主控件的结果。用户单击按钮后没有任何反映,这是由于没有添加QPushButton的处理函数,系统默认不做任何处理。文本界面风格的Hello World程序修改后的Hello World程序上述程序实例展示了QLabel组件的功能。Qt支持字符串使用HTML语法格式描述,Qt会解释HTML语法的含义并且显示正确的结果。......
2023-11-19
嵌入式系统的发展大致经历了嵌入式微控制器、嵌入式微处理器和嵌入式数字信号处理器、嵌入式片上系统和以Internet为标志的嵌入式系统等阶段。嵌入式系统的出现最初是基于单片机的,这一阶段的嵌入式系统硬件是单片机,软件停留在无操作系统阶段,采用汇编语言实现系统的功能。第四阶段是以Internet为标志的嵌入式系统。......
2023-11-19
Bootloader是具有引导功能的程序,在嵌入式系统中,Bootloader是系统加电后运行的第一段代码。Bootloader运行在内核之前,其作用是进行基本的初始化工作。图6.13Linux系统的典型分区结构BootLoader是严重地依赖于硬件而实现的,其任务可以划分为两个阶段:第一阶段●基本硬件设备初始化;●为第二阶段准备RAM空间;●复制Bootloader的第二阶段代码到RAM;●设置堆栈;●跳转到第二阶段的C程序入口点。......
2023-11-19
在PDA类的设备中,系统在全速运行的时候远比空闲的时候少,所以可以通过设置,使CPU尽可能工作在空闲状态,然后通过相应的中断唤醒CPU,恢复到正常工作模式,处理响应的事件,然后再进入空闲模式。CPU空闲时,降低时钟频率;处于工作状态时,提高时钟频率以全速运行处理事务。......
2023-11-08
相关推荐