<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ygrea的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ygrea</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ygrea]]></copyright><item><title><![CDATA[利用 gpt5.6以及image2生成论文ppt]]></title><link>https://blog.youkuaiyun.com/ygrea/article/details/162835199</link><guid>https://blog.youkuaiyun.com/ygrea/article/details/162835199</guid><author>ygrea</author><pubDate>Mon, 13 Jul 2026 11:36:11 +0800</pubDate><description><![CDATA[利用gpt最新模型生成ppt，以及一些图片的指令]]></description><category></category></item><item><title><![CDATA[void类型的本质]]></title><link>https://blog.youkuaiyun.com/ygrea/article/details/115612777</link><guid>https://blog.youkuaiyun.com/ygrea/article/details/115612777</guid><author>ygrea</author><pubDate>Mon, 12 Apr 2021 10:46:20 +0800</pubDate><description><![CDATA[我们常说在c语言中void是空类型，就是没有类型。严格上讲这种说法是错误的。在C语言中无类型是不存在的，任何东西都有类型。

   编程语言分为两种：强类型语言和弱类型语言。强类型语言中所有的变量都有自己固定的类型。这个类型有固定的内存占用，有固定的解析方法；而弱类型语言中没有类型的概念，全部变量都是一个类型（一般都是字符串的），程序在使用的时候根据需要处理这个变量。

   c语言属于强类型语言，c语言中所有的变量都有明确的类型。因为C语言的所有变量都要对应内存中的一段内存，编...]]></description><category></category></item><item><title><![CDATA[argc、argv和main函数的传参]]></title><link>https://blog.youkuaiyun.com/ygrea/article/details/115600160</link><guid>https://blog.youkuaiyun.com/ygrea/article/details/115600160</guid><author>ygrea</author><pubDate>Sun, 11 Apr 2021 16:30:30 +0800</pubDate><description><![CDATA[为什么要给main函数传参呢？

   首先，main函数是可以不传参的。也就是说父进程调用子程序并且给子程序不是必须的。int main(void)这种形式就表示我们可以不用给main传参。

   有时候我们希望程序有一种灵活性，所以选择再执行程序时通过传参来控制程序中的运行，以达到不需要重新编译程序就可以改变程序运行结果的目的。

如何给main函数传参

   表面上：给main传参通过argc和argv这两个C语言预定的参数来实现。argc时int类型表示再程序运行时给ma...]]></description><category></category></item><item><title><![CDATA[main函数详解]]></title><link>https://blog.youkuaiyun.com/ygrea/article/details/115597783</link><guid>https://blog.youkuaiyun.com/ygrea/article/details/115597783</guid><author>ygrea</author><pubDate>Sun, 11 Apr 2021 15:06:56 +0800</pubDate><description><![CDATA[c语言main函数正确写法：

int main(void)

int main(int argc, char **argv)

int main(int argc, char *argv[ ])

main函数的返回值

   函数在设计的时候设计了参数和返回值，参数是函数的输入，返回值是函数的输出。函数的额本质是一段代码，一个数据处理器。因为函数需要对外输出数据（实际上是函数运行的一些结果值），因此函数需要返回值。

从形式上来说，函数被另一个函数所调用，返回值作为函数表达式的值返回给调用函数...]]></description><category></category></item><item><title><![CDATA[宏观系统下的操作系统]]></title><link>https://blog.youkuaiyun.com/ygrea/article/details/115578007</link><guid>https://blog.youkuaiyun.com/ygrea/article/details/115578007</guid><author>ygrea</author><pubDate>Sat, 10 Apr 2021 16:26:25 +0800</pubDate><description><![CDATA[操作系统的由来

裸机程序的特点：代码量小，功能简单、所有代码都和直接目的相关，没有服务性代码。
	随着计算机技术的发展，计算机性能和资源大量增加，这时候代码也要分阶级进行分工。这时候就需要有操作系统，操作系统的代码本身不产生价值，它主要任务时管理所有资源。它主要为直接产生价值、直接劳动的那些应用程序提供服务。（操作系统既是管理者也是服务者）
操作系统的调用通道：API

   操作系统负责管理和资源调配，应用程序负责具体的直接劳动，他们之间的接口就是APiece函数。当应用程序需要使用系统资源（譬...]]></description><category></category></item><item><title><![CDATA[普通/静态局部变量和普通/静态全局变量作用域、生命周期、链接属性总结]]></title><link>https://blog.youkuaiyun.com/ygrea/article/details/115439322</link><guid>https://blog.youkuaiyun.com/ygrea/article/details/115439322</guid><author>ygrea</author><pubDate>Wed, 07 Apr 2021 10:30:45 +0800</pubDate><description><![CDATA[普通局部变量分配在栈上，作用域为代码块作用域，生命周期是临时的，链接属性是无连接（编译时是一个函数形成一个单元，链接时是函数与函数之间的层次在交换，函数内部的局部变量与其他函数没有直接的联系，所以是无连接的）。 定义时未显式初始化其值是随机的（因为其分配在栈上，在栈上的内存其他变量用完时是不会清理内存的，所以通常说栈内存是脏的），变量地址由运行时在栈上分配得到的，多次执行时地址不一定相同（局部变量在分配空间时是哪里有位置就分配到哪里的，在函数结束时就会释放掉这块空间），函数不能返回局部变量的...]]></description><category></category></item><item><title><![CDATA[C语言链接属性]]></title><link>https://blog.youkuaiyun.com/ygrea/article/details/115430304</link><guid>https://blog.youkuaiyun.com/ygrea/article/details/115430304</guid><author>ygrea</author><pubDate>Sun, 04 Apr 2021 18:56:03 +0800</pubDate><description><![CDATA[一个庞大、完整的C语言程序（Linux内核、uboot）是由多个c文件和多个h文件组成。而c文件中主要存放的是程序的函数、代码，h文件则是头文件、宏定义、结构体定义、函数声明等。要执行这样庞大的c语言程序，就需要了解C语言的链接属性。

程序的生成过程

   程序的生成过程是：编译加链接。我们的多个c文件和h文件变成我们的可执行程序，必须要经过编译和链接两个过程。编译的过程是为了将我们的函数/变量编程一个.o的二进制格式机器码，链接时为了将各个独立分开的二进制的函数链接起来形成一个整体的二进制可执...]]></description><category></category></item><item><title><![CDATA[c语言变量的生命周期]]></title><link>https://blog.youkuaiyun.com/ygrea/article/details/115426084</link><guid>https://blog.youkuaiyun.com/ygrea/article/details/115426084</guid><author>ygrea</author><pubDate>Sun, 04 Apr 2021 11:31:36 +0800</pubDate><description><![CDATA[栈变量（局部变量）的生命周期

   自己定义的局部变量被分配在栈上，而栈在用完时会被释放掉，所以局部变量的生命周期时临时的。 临时变量在被函数每一次定义、调用时都会被创建一次，在函数返回时就会被释放。每一次调用局部变量，都会在内存中重新分配，他的地址都会改变。

   所以函数内的局部变量不能够再函数外使用，是无连接的。在我们实际编程时，如果要使用小块的临时空间，可以申请栈空间。

   局部变量也叫做临时变量，因为给它定义的这个作用/使命，所以不能够在函数外使用。

堆变量（大块...]]></description><category></category></item><item><title><![CDATA[S5PV210的启动]]></title><link>https://blog.youkuaiyun.com/ygrea/article/details/107591927</link><guid>https://blog.youkuaiyun.com/ygrea/article/details/107591927</guid><author>ygrea</author><pubDate>Sun, 26 Jul 2020 12:31:16 +0800</pubDate><description><![CDATA[如需转载请注明出处：https://blog.youkuaiyun.com/qq_29350001/article/details/78433564
讲完启动模式、烧写更新，接下来我们看一下启动流程。
参看：S5PV210开发 -- 烧写/启动模式
参看：S5PV210开发 -- 通过 SD 卡烧写
参看：S5PV210开发 -- 通过 DNW、f...]]></description><category></category></item><item><title><![CDATA[嵌入式系统主要半导体存储器]]></title><link>https://blog.youkuaiyun.com/ygrea/article/details/107591716</link><guid>https://blog.youkuaiyun.com/ygrea/article/details/107591716</guid><author>ygrea</author><pubDate>Sun, 26 Jul 2020 12:13:54 +0800</pubDate><description><![CDATA[ARM体系结构中主要半导体存储器
嵌入式系统使用的存储器有多种类型，按其存取特性可分为随机存取存储器和只读存储器；按照所处的物理位置可分为片内存储器和片外存储器以及外部存储设备；按照存取信息的不同可分为程序存储器和数据存储器。
IROM:集成到SOC内部的ROM；
IRAM：集成到SOC内部的RAM；
RAM
RAM：随机存取存储器，可读写。断电后信息不保存。是与CPU直接交换数据的内部存储器，也叫主存。可以随时读写，而且速度很快，通常作为操作系统或其他正在运行的程序的临时数据媒介。如计算机内存。
按照存储]]></description><category></category></item><item><title><![CDATA[ARM七种工作模式]]></title><link>https://blog.youkuaiyun.com/ygrea/article/details/107586322</link><guid>https://blog.youkuaiyun.com/ygrea/article/details/107586322</guid><author>ygrea</author><pubDate>Sat, 25 Jul 2020 22:33:41 +0800</pubDate><description><![CDATA[ARM的7种工作模式
 ARM有七种工作模式分别包括一种特权模式和六种工作模式；

工作模式还包括一个系统模式和五个异常模式。
特权模式
User：非特权模式，大部分任务执行在这种模式。
工作模式：
System：系统模式，使用和User模式相同的寄存器集的特权模式。
FIQ：快速中断模式
IRQ：慢中断模式
Supervisor：复位或软中断时执行此指令
Abort：存取异常模式
Undefined：执行未定义指令的模式
模式之间的切换：可以通过写CPSR 寄存器来切换。

...]]></description><category></category></item></channel></rss>