推荐阅读最新更新时间:2024-11-12 16:02
C51编译器-语言扩展(4)-函数
Function Declarations函数声明 Cx51对标准C进行了一定的扩展,使用这些扩展可以: (1)把一个函数声明为一个中断过程 (2)选择使用的寄存器组 (3)选择存储器模式 (4)声时可重入 (5)声明外部函数 在函数声中包含这些扩展或属性,使用下面的方法声明Cx51函数 funcname ( ) 这里 return_type 返回值类型 funcname 函数名称 args 参数 small, compact, or large 存储器模式 reentrant 是否可重入 interrupt 是否是中断函数
[单片机]
STC89C52RC单片机额外篇 | 03 - 认识C51编译器支持的数据类型
以前我们在学习C语言的时候,有C语言支持的数据类型,它们被称为标准C,现在对于51单片机,它与标准C的数据类型稍有不同,并且追加了一些关键字。 在标准C语言中基本的数据类型,例如char、int、short、long、float与double,它们存储数据的长度是有差异的,而在C51编译器中,int与short是一样的,float与double也是一样的,我们通过表格来看看它们具体的定义: 对于unsigned char、signed char、unsigned int、signed int、unsigned long、signed long这些数据类型,我们在C语言的学习中就已经用得较多,这里不再赘述。下面分别对指针型*
[单片机]
STM32笔记--使用ST-Link下载hex文件
嵌入式产品开发过程中,日常使用ST-Link下载程序时都是在MDK编译器中下载源代码,但ST-Link其实也可以直接下载hex文件,STM32官方就有提供一个ST-Link下载程序的工具STM32 ST-LINK Utility,只需三步,就能将hex文件下载到单片机中,相比使用串口下载hex文件繁琐的步骤操作,真香 1 ST-LINK Utility下载安装 1.1 下载ST-LINK Utility ST-LINK Utility是意法半导体提供的开源工具,直接在意法半导体官网即可下载 下载链接:https://www.st.com/en/development-tools/stsw-link004.html 下载界面
[单片机]
玩转mini2440开发板之【下载编译安装运行QT lib/QT Creator/QT程序全过程】
玩了这么久的mini2440开发板,今天终于完整的将QT研究了一遍,从下载QT库的源码包、配置、编译、安装,然后再到QT Creator的下载、安装和配置,进而新建一个工程,并成功编译,下载到开发板中,最后通过配置开发板的运行环境,使得程序成功运行起来,算是将所有流程都理解并执行了一遍。下面就将整个过程记录如下,以备参考: O、开发环境介绍 主机系统:win10(64位); 虚拟工具:Virtualbox 5.2.0; 虚拟系统:Ubuntu 14.04(64位); 一、QT lib库 1、下载 可直接从友善之臂的光盘中获取,arm-qte-4.8.5-20131207.tar.gz的压缩包中就有了,qt-everywh
[单片机]
关于keil5使用注意事项(预定义、路径包含)
终于在不用keil5自带添加库的基础上0 error的新建了一个工程。磕磕绊绊搞了快一个下午,各种小问题搞到崩溃。 首先是库文件添加路径的问题 ,只要是你工程中用到的头文件,都需要在工程选项配置中添加相应的路径,另外,通过一个下午的挣扎,发现最好还是在学习的过程中逐渐构建自己的代码库,最好自己添加需要的库文件,这样便于程序的移植。也便于熟悉各种启动文件。 另外一定要注意程序中不能有汉语输入。 千万不要有汉语输入!千万不要有汉语输入!千万不要有汉语输入! 一开始我一直以为是keil坏了,谁知道最后还是发现是自己的错。所以一定要细心。跟着他提示的错误代码行去找,记住,一定要细心。不要老是怀疑别人。一点点汉语输入的空格导致我浪
[单片机]
arm linux交叉编译工具的安装
(1)工具的下载 http://www.codesourcery.com/sgpp/lite/arm/portal/release1293 or IA32 GNU/Linux TAR。 目前工具的名称为arm-2010q1-202-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 (2)把下载的压缩包拷贝到ubuntu里。比如我copy的地址为/share/toolchain,此文件夹也作为安装目录。 然后在终端进行如下输入 $ cd /share/toolchain $ tar xvjf arm-2010q1-202-arm-none-linux-gnueabi-i686-pc
[单片机]
IAR编译stm8出现的奇葩问题
近日使用iar for stm8的软件来调试stm8系列的芯片,使用timer定时器中断时发现一个问题,程序中timer定时器的中断入口如下 #pragma vector=ITC_IRQ_TIM1_OVF + 2 __interrupt void TIM1_UPD_OVF_BRK_IRQHandler(void) { /* 清除更新中断标记,这步不能漏掉,否则会连续进入中断程序 */ TIM1_ClearFlag(TIM1_FLAG_UPDATE); //add your code here } 我在 #pragma vector=ITC_IRQ_TIM1_OVF + 2 和 __interrupt
[单片机]
嵌入式问题(codewarrior编译、下载程序)
开始学习arm裸机程序,之前就在准备着,可是一直进展的不是很顺;原因是自己效率不是很高,怕失败;不过突然顿悟了,与其慢慢的做自己会的东西不如突破下自己往前走因为怕失败的人终究是要失败的;但是有个前提--得有目标不能今天学linux,明天又学arm裸机;所以从今天开始学arm裸机程序。于是决定,早睡早起,遇到问题勇于尝试而不是死命的想,做技术的可以先会做了再明白为什么这么做。 前面开题,下面说说学习过程中遇到的问题,无论是硬件问题还是软件问题,无论是板子的问题还是自身的问题都将记录在日志中便于今后学习。 今天遇到问题:1.ads编译不出arm可执行的二进制文件2.bin程序下不近开发板。 解决方案: 问题1:
[单片机]