<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Cwcnma的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Cwcnma</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Cwcnma]]></copyright><item><title><![CDATA[硬件-DAY08（中断）]]></title><link>https://blog.youkuaiyun.com/Cwcnma/article/details/148879720</link><guid>https://blog.youkuaiyun.com/Cwcnma/article/details/148879720</guid><author>Cwcnma</author><pubDate>Tue, 24 Jun 2025 21:47:36 +0800</pubDate><description><![CDATA[将这些文件分为4类，并保存到4个不同的文件夹里。首先在新的工程文件夹里创建一个之后我们编写的类似led驱动，clk驱动等等外设驱动程序都放在这文件夹里面，;再，存放 start.s和 main.c 文件，也就是应用文件；一个，用来保存NXP的相关库cc.h、fsl_common.h、fsl_iomuxch和 MCIMX6Y2.h 这四个文件;最后再创建一个，用来存放编译生成的.o 文件。]]></description><category></category></item><item><title><![CDATA[硬件-DAY07（GUN工具链常用工具、SDK工具及链接脚本）]]></title><link>https://blog.youkuaiyun.com/Cwcnma/article/details/148852874</link><guid>https://blog.youkuaiyun.com/Cwcnma/article/details/148852874</guid><author>Cwcnma</author><pubDate>Mon, 23 Jun 2025 20:12:26 +0800</pubDate><description><![CDATA[common区:全局变量且赋值了的1. .bss段用于存放未初始化或初始化为0的数据在运行时会被自动清零- 典型例子：// 静态变量（全局或局部）// 显式初始化为0的全局变量2.COMMON段用于存放未初始化的非静态全局变量链接时才确定最终大小和位置允许多个目标文件定义同名符号- 典型例子：//未初始化的非静态全局变量3. .data段用于存放已初始化的全局变量和静态变量（非零值）需要在程序文件中保存实际的初始值- 典型例子：// 初始化为非零值。]]></description><category></category></item><item><title><![CDATA[硬件-DAY06（arm启动代码）]]></title><link>https://blog.youkuaiyun.com/Cwcnma/article/details/148833942</link><guid>https://blog.youkuaiyun.com/Cwcnma/article/details/148833942</guid><author>Cwcnma</author><pubDate>Sun, 22 Jun 2025 22:49:50 +0800</pubDate><description><![CDATA[2.对函数声明：import(导入)         export(导出), {r0-r12, lr}(2) 于r0中，设置相关数据，设为User模式（10000）(1) msr指令：读取cpsr、spsr寄存器。(3) msr指令：写入cpsr、spsr寄存器。在汇编中，声明c的函数，import main。保护时，SP先写，再加；恢复时，SP先减，再读；保护时，SP先加，再写；恢复时，SP先读，再减；保护时，SP先减，再写；恢复时，SP先读，再加；保护时，SP先写，再减；恢复时，SP先加，再读；]]></description><category></category></item><item><title><![CDATA[硬件-DAY05（ARM基础知识、ARM的指令）]]></title><link>https://blog.youkuaiyun.com/Cwcnma/article/details/148798095</link><guid>https://blog.youkuaiyun.com/Cwcnma/article/details/148798095</guid><author>Cwcnma</author><pubDate>Fri, 20 Jun 2025 19:40:11 +0800</pubDate><description><![CDATA[ps：flash闪存中，ARM的指令集：ARM指令集（32bit）、Thumb指令集（16bit）]]></description><category></category></item><item><title><![CDATA[硬件-DAY04(ds18b20、ARM内核)]]></title><link>https://blog.youkuaiyun.com/Cwcnma/article/details/148772646</link><guid>https://blog.youkuaiyun.com/Cwcnma/article/details/148772646</guid><author>Cwcnma</author><pubDate>Thu, 19 Jun 2025 19:38:26 +0800</pubDate><description><![CDATA[当上拉和下拉电阻都不开启时，GPIO引脚处于浮空模式，此时引脚的电压是不确定的，可能会随时间改变。BUS总线分为AHB总线（先进的高速设备）和APB总线（先进的低俗设备）6.MMU：memory management unit，内存管理单元（内存映射）R(应用于实时性方向，如军事，通信)初始化（复位）--- 写操作 --- 读操作 --- 获取温度。dCache：数据Cache，所以ARM是哈弗结构。3.SP：栈指针寄存器（在硬件物理层的指针，来管理栈区）4.PC：程序计数器，PC指到哪，程序就执行到哪。]]></description><category></category></item><item><title><![CDATA[硬件-DAY03( UART及modbus)]]></title><link>https://blog.youkuaiyun.com/Cwcnma/article/details/148749806</link><guid>https://blog.youkuaiyun.com/Cwcnma/article/details/148749806</guid><author>Cwcnma</author><pubDate>Thu, 19 Jun 2025 18:09:49 +0800</pubDate><description><![CDATA[常见的波特率有1200、2400，4800，9600，115200等，表示每秒钟传输的比特数。校验位分为奇校验，偶校验和无校验。传输速率较高，但会占用大量的芯片资源传输速率较高，但会占用大量的芯片资源.1）TTL(Transistor-Transistor Logic)通常指的就是芯片引脚产生的电压，这个电压值跟选择的芯片有关，3）同理RS485使用两根信号线（A和B）来传输数据，通过比较A和B之间的电压差来识别信息，电压范围分别为。，RS485在传输数据的某一时刻，两根线都要用到，所以它是。]]></description><category></category></item><item><title><![CDATA[硬件-DAY02（按键、中断、定时器、蜂鸣器）]]></title><link>https://blog.youkuaiyun.com/Cwcnma/article/details/148722665</link><guid>https://blog.youkuaiyun.com/Cwcnma/article/details/148722665</guid><author>Cwcnma</author><pubDate>Tue, 17 Jun 2025 20:18:00 +0800</pubDate><description><![CDATA[当GATE（TMOD.3）=0，TR0=1时就允许T0开始计数，TR0=0时禁止T0计数。当GATE（TMOD.3）=1，TR1=0且INT0输入。当中央处理机CPU正在处理某件事的时候外界发生了紧急事件请求，要求CPU暂停当前的工作，转而去处理这个紧急事件，处理完以后，再回到原来被中断的地方，继续原来的工作，这样的过程称为中断。4.51单片机中5个中断源：外部中断0、定时器中断0、外部中断1、定时器中断1、串口中断。2.中断源：能够打断当前工作任务的事件（外部中断）二、中断处理（由kernel处理）]]></description><category></category></item><item><title><![CDATA[硬件-DAY01（LED点灯、共阴极数码管）]]></title><link>https://blog.youkuaiyun.com/Cwcnma/article/details/148698114</link><guid>https://blog.youkuaiyun.com/Cwcnma/article/details/148698114</guid><author>Cwcnma</author><pubDate>Mon, 16 Jun 2025 19:27:29 +0800</pubDate><description><![CDATA[RAM：随机访问存储器、易失性存储器，（地址总线有8个端口，一共有256个字节）RAM中有128位、数据在RAM 中，保存后就会存到ROM中。3.P0（0x80）、P1（0x90）、P2（0xA0）、P3（0xB0）寄存器（系统提前定义好的全局变量）P0控制位选、P1控制段选（LEDS1、LEDS2、LEDS3、LEDS4）四小项：51单片机（8051内核）、IMX6ULL、系统移植、驱动。2.CPU（中央处理单元） MCU（微控制器单元）soc（特殊的cpu）四、数码管（共阴极数码管）]]></description><category></category></item><item><title><![CDATA[Linux系统编程-DAY13（事务、页面制作、HTTP协议）]]></title><link>https://blog.youkuaiyun.com/Cwcnma/article/details/148592885</link><guid>https://blog.youkuaiyun.com/Cwcnma/article/details/148592885</guid><author>Cwcnma</author><pubDate>Wed, 11 Jun 2025 20:08:28 +0800</pubDate><description><![CDATA[name<img src="abc.jpg"></sup>：上标    <br>100m<sup>2]]></description><category></category></item><item><title><![CDATA[Linux系统编程-DAY12（数据库）]]></title><link>https://blog.youkuaiyun.com/Cwcnma/article/details/148565359</link><guid>https://blog.youkuaiyun.com/Cwcnma/article/details/148565359</guid><author>Cwcnma</author><pubDate>Tue, 10 Jun 2025 18:16:28 +0800</pubDate><description><![CDATA[eg：insert into user1 values (2,'张三',23,datetime('now','+8 hours'));ps:以上表的表字段，支持如下数据类型：int text real（小数数据） blob（二进制数据）。create table 表名（表字段1 类型,表字段2 类型, ......）;]]></description><category></category></item><item><title><![CDATA[Linux系统编程-DAY11（多路复用IO）]]></title><link>https://blog.youkuaiyun.com/Cwcnma/article/details/148543335</link><guid>https://blog.youkuaiyun.com/Cwcnma/article/details/148543335</guid><author>Cwcnma</author><pubDate>Mon, 09 Jun 2025 22:05:52 +0800</pubDate><description><![CDATA[函数原型：int select(int nfds, fd_set *readfds, fd_set *wirtefds, fd_set *exceptfds, struct timeval *timeout);3.epoll显著提高性能的前提是：监听大量描述符，并且每次触发事件的描述符文件非常少。4>epoll把准备就绪的fd，放入rev集合中（这里的集合可以理解为数组）功能：将指定的set集合中编号为fd的描述符号删除。功能：将指定的fd描述符，添加到set集合中。如果在则返回真，否则返回假。]]></description><category></category></item><item><title><![CDATA[Linux系统编程-DAY10（TCP操作）]]></title><link>https://blog.youkuaiyun.com/Cwcnma/article/details/148458001</link><guid>https://blog.youkuaiyun.com/Cwcnma/article/details/148458001</guid><author>Cwcnma</author><pubDate>Thu, 05 Jun 2025 20:27:50 +0800</pubDate><description><![CDATA[1.服务端：socket()---> bind()--->listen()--->accept()--->recv()--->send()--->close()2.客户端：socket()--->connect()--->send()--->recv()--->send()（1）流式套接字：全双工（既能收也能发）（因为是双缓冲区（发送缓冲区和接收缓冲区））1-3三次握手（建立连接），4-7处理数据（收发），7-10四次挥手（断开连接）有顺序的（数据会有序到达）（发和收的次序可不对应）]]></description><category></category></item><item><title><![CDATA[Linux系统编程-DAY09（网络编程）]]></title><link>https://blog.youkuaiyun.com/Cwcnma/article/details/148433775</link><guid>https://blog.youkuaiyun.com/Cwcnma/article/details/148433775</guid><author>Cwcnma</author><pubDate>Wed, 04 Jun 2025 20:01:29 +0800</pubDate><description><![CDATA[网络层： IP  ICMP（ping） RIP OSPF IGMP ...（IP：互联网协议、ICMP互联网管理协议，用于做网络检测和诊断用、RIP 最短路径、OSPF 最佳路径、IGMP）数据链路层：负责物理相邻(通过网络介质相连)的主机间的数据传输，主要作用包括物理地址寻址、数据帧封装、差错控制等。1）socket  套接字 ---> BSD socket ---> 用于网络通信的一组接口函数。tcp：高成本发送数据（在网络中一种可靠的传输方式），缺点：网络延迟有点大，网络开销大。]]></description><category></category></item><item><title><![CDATA[Linux系统编程-DAY07（线程的异步与同步）]]></title><link>https://blog.youkuaiyun.com/Cwcnma/article/details/148291514</link><guid>https://blog.youkuaiyun.com/Cwcnma/article/details/148291514</guid><author>Cwcnma</author><pubDate>Wed, 28 May 2025 20:54:51 +0800</pubDate><description><![CDATA[linux下的线程同步  --->信号量机制 --->semaphore.h   posix。框架：信号量的定义--->信号量的初始化 --->信号量的PV操作--->信号量的销毁。定义互斥锁 ---> 初始化锁 ---> 加锁 ---> 解锁 ---> 销毁。2.线程的同步 ---> 同步 ---> 有一定先后顺序的对资源的排他性访问。P --->申请资源--->申请一个二值信号量。V --->释放资源--->释放一个二值信号量。P操作对应函数 --->sem_wait();]]></description><category></category></item><item><title><![CDATA[Linux系统编程-DAY06（线程）]]></title><link>https://blog.youkuaiyun.com/Cwcnma/article/details/148264065</link><guid>https://blog.youkuaiyun.com/Cwcnma/article/details/148264065</guid><author>Cwcnma</author><pubDate>Tue, 27 May 2025 20:17:39 +0800</pubDate><description><![CDATA[2： 强制退出 --> 他杀 --> 主线程结束子线程    int pthread_cancel(pthread_t thread);功能：通过该函数可以将指定的线程资源回收，该函数具有阻塞等待功能，如果指定的线程没有结束，则回收线程会阻塞。线程启动时，需要在栈区开一个8M的空间，进程拿到的资源，对于线程是共享的。1.创建多线程 --->线程空间操作  --->线程资源回收。2.  arg  回调函数的参数，即参数3的指针函数参数。2）主线程调用：填入刚才创建的线程的线程号。]]></description><category></category></item><item><title><![CDATA[Linux系统编程-DAY05（进程相关操作）]]></title><link>https://blog.youkuaiyun.com/Cwcnma/article/details/148235311</link><guid>https://blog.youkuaiyun.com/Cwcnma/article/details/148235311</guid><author>Cwcnma</author><pubDate>Mon, 26 May 2025 19:01:04 +0800</pubDate><description><![CDATA[退出状态，终止的进程会通知父进程，自己使如何终止的。如果是正常结束（终止），则由exit传入的参数。如果是异常终止，则有内核通知异常终止原因的状态。任何情况下，负进程都能使用wait，waitpid获得这个状态，以及资源的回收。功能：该函数可以阻塞等待任意子进程退出，并回收该进程的状态，一般用于父进程回收子进程状态。exit -> 刷新缓存区 -> atexit注册的退出函数 -> _exit。僵尸进程:进程执行结束但空间未被回收变成僵尸进程。参数：status:进程退出的状态。只能父进程回收子进程。]]></description><category></category></item><item><title><![CDATA[Linux系统编程-DAY04（进程、父子进程）]]></title><link>https://blog.youkuaiyun.com/Cwcnma/article/details/148214116</link><guid>https://blog.youkuaiyun.com/Cwcnma/article/details/148214116</guid><author>Cwcnma</author><pubDate>Sun, 25 May 2025 23:50:18 +0800</pubDate><description><![CDATA[程序执行的过程，包括进程打的创建、调度、消亡    .c   ---->  a.out --- > process(pid)写时复制：子进程数据段只有发生变化的值，才会定义，其他的共享父进程的。子进程复制父进程的0到3G空间和父进程内核中的PCB，但id号不同，一般子进程的id号大一些。内存开始的地址是0G，结束的地址是3G，内核是3G，结束的位置是4G。进程打开的文件列表， 文件IO中有提到，每开一个文件，pcb块都会有记录。子进程是父进程的副本，子进程获得父进程数据段，堆，栈，正文段共享。]]></description><category></category></item><item><title><![CDATA[Linux系统编程-DAY03（文件IO、文件夹）]]></title><link>https://blog.youkuaiyun.com/Cwcnma/article/details/148140668</link><guid>https://blog.youkuaiyun.com/Cwcnma/article/details/148140668</guid><author>Cwcnma</author><pubDate>Thu, 22 May 2025 20:08:06 +0800</pubDate><description><![CDATA[1.lseek函数： off_t lseek(int fd, off_t offset, int whence)9.  time_t time (time _ t *tloc)     头文件<time.h>7.目录：（1）打开opendir（2）读取目录readdir （3）关闭closedir。-------DIR *dir-------  （系统结构体）目录流指针。DT_BLK 块设备     DT_CHR 字符设备。DT_REG普通文件、DT_SOCK网络文件。2.fileno.c函数。]]></description><category></category></item><item><title><![CDATA[Linux系统编程-DAY02（标准io、文件io）]]></title><link>https://blog.youkuaiyun.com/Cwcnma/article/details/148110314</link><guid>https://blog.youkuaiyun.com/Cwcnma/article/details/148110314</guid><author>Cwcnma</author><pubDate>Wed, 21 May 2025 20:13:41 +0800</pubDate><description><![CDATA[size_t fwrite（const void *ptr, size_t size, size_t nmemb, FILE *stream） ptr一般为数组，第一个size表示多大，第二个size表示份数。O_APPEND  O_CREAT  O_TRUNG    (eg:创建文件： O_WRONLY |  O_CREAT | O_TRUNG )stdin -> 标准输入，终端，键盘scanf，gets，getchar。-    rw-rw-r--  作者，组，其他 （-普通文件  d目录）]]></description><category></category></item><item><title><![CDATA[Linux系统编程-DAY01（标准io）]]></title><link>https://blog.youkuaiyun.com/Cwcnma/article/details/148090423</link><guid>https://blog.youkuaiyun.com/Cwcnma/article/details/148090423</guid><author>Cwcnma</author><pubDate>Tue, 20 May 2025 18:19:05 +0800</pubDate><description><![CDATA[eg:---> stdio.h ---> stdio.c ---> libc.so --> /usr/ lib so动态库（lib.c so 此时是一个二进制文件，也叫库文件）读完返回null（文件到达结尾或出错，一般当作到达结尾），文本文件开空间时，大小建议开1~4K。一、系统编程（大量的函数）属于应用程序编程，系统编程是操作系统走完程序后，才运行我的程序；<> 是系统库函数，默认路径：  /user/include。1.文件：文件操作的步骤：打开 --> 读写 --> 关闭。]]></description><category></category></item></channel></rss>