![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
pine222
linux移植。verilog cpu设计验证综合
展开
-
关于指针和数组的区别
先看一段代码: char *s; sprintf(s,"%d",123); 此时s中并没有值; 假如换成 char s[3]; sprintf(s,"%d",123); S中便有值了 我的编译环境是AVR STUDIO,不知道是什么原因, 1,难道是因为声明char *s是没有给S分配内存所导致的, 2,还有种说法是char *s中存放的 字符串常量,存放原创 2013-05-26 16:42:49 · 766 阅读 · 0 评论 -
宏定义函数用法
先上一段代码: /////////////////////////////////////////////////////////////////////////////////////////////////////// //下面这个函数是什么用法,ln10定义了如下函数(宏定义) #define list_for_each_entry_bssdes(pos, head, member)原创 2014-04-26 15:27:50 · 1130 阅读 · 0 评论 -
关于单片机串口原理
C语言中 EA = 1; //允许总中断 ES = 1; //允许串口中断 汇编中可用 SETB EA ;允许总中断 SETB ES ;允许串口中断 当单片机接收到一帧数据后,RI会置1,向CPU申请中断,若之前有中断允许,则产生了中断,进入中断服务程序。当然,单片机发送完一帧数据,TI也会置1,同样会产生中断! 一般我们在发送数据时要关中断,因为一般你不用在发送时不用处理数据;接原创 2014-11-21 20:43:26 · 861 阅读 · 0 评论 -
linux系统移植概述
【转】 与其它操作系统相比,Linux最大的特点:它是一款遵循GPL的操作系统,我们可以自由地使用、修改、和扩展它。正是由于这一特色,Linux受到越来越多人士的青睐。于是,一个经常会被探讨的问题出现了,即关于Linux系统的移植。对于操作系统而言,这种移植通常是跨平台的、与硬件相关的,即硬件系统结构、甚至CPU不同。下面就让我们来看看在Linux系统移植方面,我们都需要做些什么。 一、L转载 2014-11-24 16:15:17 · 936 阅读 · 0 评论 -
为何C语言(的函数调用)需要堆栈,而汇编语言却不需要堆栈
之前看了很多关于uboot的分析,其中就有说要为C语言的运行,准备好堆栈。 而自己在Uboot的start.S汇编代码中,关于系统初始化,也看到有堆栈指针初始化这个动作。但是,从来只是看到有人说系统初始化要初始化堆栈,即正确给堆栈指针sp赋值,但是却从来没有看到有人解释,为何要初始化堆栈。所以,接下来的内容,就是经过一定的探究,试图来解释一下,为何要初始化堆栈,即: 为何C语言的函数调转载 2015-03-17 20:18:59 · 680 阅读 · 0 评论