唐富贵666
这个作者很懒,什么都没留下…
展开
-
实验六、嵌入式Linux GUI编程实验
信号和槽是 QT 自行定义的一种通信机制,它独立于标准的 C/C++ 语言,因此要正确的处理信号和槽,必须借助一个称为 moc(Meta Object Compiler)的 QT 工具,该工具是一个 C++ 预处理程序,它为高层次的事件处理自动生成所需要的附加代码。既然槽是普通的成员函数,因此与其它的函数一样,它们也有存取权限。你可以将很多信号与单个的槽进行连接,也可以将单个的信号与很多的槽进行连接,甚至于将一个信号与另外一个信号相连接也是可能的,这时无论第一个信号什么时候发射系统都将立刻发射第二个信号。原创 2023-06-09 22:14:16 · 729 阅读 · 0 评论 -
实验五、嵌入式Linux驱动编程实验
用户应用程序直接对硬件操作是非常复杂的,设备驱动程序作为内核的一部分,其作用就是让驱动与底层硬件直接打交道,按照硬件设备的具体工作方式,读写设备的寄存器,完成设备的轮询、中断处理、DMA 通信,进行物理内存向虚拟内存的映射等,最终让通信设备能收发数据,让显示设备能显示文字和画面,让存储设备能记录文件和数据。在用户应用程序利用系统调用对设备文件进行操作时,系统调用首先通过设备文件的主设备号找到相应的驱动程序,然后读取这个结构体相应的函数指针,借着把控制权交给驱动的这个函数。而次设备号标识一个具体的物理设备。原创 2023-06-09 22:12:50 · 692 阅读 · 0 评论 -
实验四、嵌入式Linux串行通信实验
在串行传输中,发送方为了告诉接受方,新的数据字节分组到达,在每一个数据字节分组前面有一个起始位(通常为0),为了让接受方知道字节已经结束,在每一个数据字节分组后面有一个停止位(通常为1),接受方一旦检测到停止位,接受方会一直等待,直到下一个开始位。停止位,停止位是一帧数据结束的标志,可以是1bit、1.5bit或者2bit逻辑“1” 高电平,需要根据自己需求配置,每一个设备都有自己的时钟,在传输过程中可能出现了小小的不同步,停止位不仅仅表示传输的结束,并且提供了校正时钟同步的机会。奇偶校验位用于差错检测。原创 2023-06-09 22:11:14 · 625 阅读 · 0 评论 -
实验三、嵌入式Linux网络通信实验
5、监听套接字还是不完整的,它是一个没有源端插口地址的套接字,因此当有客户端连接到该服务器端的时候,就会与 监听套接字“组合”成一个完整的已连接套接字了(当然不是真的组合,可以这么来理解这个过程)。一旦建立连接,将产生新的套接字,此时就有两个套接字了,原来的那个套接字还在监听等待指定的端口,而新产生的套接字则准备发送或接受数据。4、好了,服务器端的套接字有本地插口地址了,这个套接字是用来监听的,也就是说这个套接字是用来监听是否有指向该服务器端的连接请求,由listen()函数将这个套接字变成监听套接字。原创 2023-06-09 22:08:57 · 224 阅读 · 0 评论 -
实验二、嵌入式Linux多线程编程实验
相对进程而言,线程是一个更加接近于执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。也可以将线程和轻量级进程(LWP)视为等同的,但其实在不同的系统/实现中有不同的解释,LWP更恰当的解释为一个虚拟CPU或内核的线程。一般来说,信号量S>=0时,S表示可用资源的数量。上面已经介绍了,Linux进程模型提供了执行多个进程的能力,已经可以进行并行或并发编程,可是线程能够让你对多个任务的控制程度更好、使用资源更少,因为一个单一的资源,如全局变量,可以由多个线程共享。原创 2023-06-09 22:04:11 · 362 阅读 · 0 评论 -
实验一、嵌入式系统开发环境熟悉
交叉编译(或交叉建立)是这样一种过程,它在一种机器结构下编译的软件将在另一种完全不同的机器结构下执行。glibc 一个c 库,最终是以库的形式存在于编译器中,自然ARM所使用的glibc 库跟x86 同样也不一样,其它的依此类推。gcc-core:顾明之意是GCC的核心部分,这部分是只包含c的编译器及公共部分,而对其他语言(C++、Ada等)的支持包需要另外安装,这也是GCC为何如此强大的重要原因。Glibc:包含了主要的c库,这个库提供了基本的例程,用于分配内存,搜索目录,读写文件,字符串处理等等。原创 2023-06-09 22:02:00 · 277 阅读 · 0 评论