推荐阅读最新更新时间:2024-03-16 15:57
简析STM32的启动过程
当前的嵌入式应用程序开发过程里,C语言已成为了绝大部分场合的最佳选择。如此一来main函数似乎成为了理所当然的起点——因为C程序往往从main函数开始执行。但一个经常会被忽略的问题是:微控制器(单片机)上电后,是如何寻找到并执行main函数的呢?很显然微控制器无法从硬件上定位main函数的入口地址,因为使用C语言作为开发语言后,变量/函数的地址便由编译器在编译时自行分配,这样一来main函数的入口地址在微控制器的内部存储空间中不再是绝对不变的。相信读者都可以回答这个问题,答案也许大同小异,但肯定都有个关键词,叫“启动文件”,用英文单词来描述是“Bootloader”。 无论性能高下,结构简繁,价格贵贱,每一种微控制器(
[单片机]
查找嵌入式C语言程序/软件中的缺陷的多种技术
基于模式的静态代码分析、运行时内存监测、单元测试以及数据流分析等软件验证技术是查找嵌入式C语言程序/软件缺陷行之有效的方法。上述技术中的每一种都能查找出某一类特定的错误。即便如此,如果用户仅采用上述技术中的一种或者几种来进行验证,这样的验证方法很有可能会漏过对程序中的一些缺陷的检查。解决此类问题的一种安全和有效的策略就是同时使用上述软件验证中的所有互补技术。这样就能建立起一个牢固的框架来帮助用户检查出可能会避开某种特定技术的缺陷。与此同时,用户也自然地建立起一个能检测出关键并且难以查找的功能性错误的环境。 本文将详尽阐述基于模式的静态代码分析、运行时内存错误检测、单元测试以及数据流分析等自动化技术共同使用时是如何查找出嵌入式C语言
[单片机]
用C语言写一个LCD1602驱动显示程序
#define MAIN_Fosc 22118400L #include STC15Fxxxx.H sbit P_HC595_SER = P4^0; sbit P_HC595_RCLK = P5^4; sbit P_HC595_SRCLK = P4^3; u8 hour,minute,second; void DisplayRTC(void); void RTC(void); void delay_ms(u8 ms); void DisableHC595(void); void Initialize_LCD(void); void Write_AC(u8 hang,u8 lie); void Write_DIS_Data(u8
[单片机]
单片机C语言程序-依次点亮八个LED灯
电路很简单八个led灯接在p1口.运行后看到的效果是 从第一个灯开始 随着时间变化 二进制数的递减 所有的灯都会依次的点亮,当全部的灯都被点亮后再重新开始这个过程 一直循环下去 单片机是不是很有趣? 下面是c语言程序源码 #include reg51.h void delay100ms(); //如果函数是在主函数后面定义,那么一定要在主函数前面声明 void main() { int i; i=0xfe; while(1) {P1=i; i--; delay100ms(); if(i==0) i=0xfe; } } void delay100ms(vo
[单片机]
小容量单片机系统的C语言程序结构
引 言:
2002年初,笔者着手写一个IC卡预付费电表的工作程序,该电表使用Philips公司的8位51扩展型单片机87LPC764,要求实现很多功能,包括熄显示、负荷计算与控制、指示闪烁以及电表各种参数的查询等,总之,要使用时间的单元很多。笔者当时使用ASM51完成了这个程序的编写,完成后的程序量是2KB多一点。后来,由于种种原因,这个程序并没有真正使用,只是作了一些改动之后用在一个老化设备上进行计时与负荷计算。约一年后,笔者又重新改写了这些代码。
1 系统的改进
可以说,这个用ASM51实现的代码是没有什么组织性可言的,要什么功能就加入什么功能,弄得程序的结构非常松散,其实这也是导致笔者最终决定重新改写这些代
[单片机]
上海龙晶获Tensilica Diamond 330HiFi音频处理器IP核授权开发便携AVS芯片
美国加州SANTA CLARA、中国上海2007年2月12日讯 – Tensilica公司今日宣布上海龙晶科技获得了Diamond Standard 330HiFi音频处理器IP核许可,进行SoC(片上系统)设计,该SoC芯片将用于符合中国正在兴起的音视频编码标准(AVS)手机和个人媒体播放器(PMP)。龙晶公司已经成功地发布了DS-1000 IC,该产品是支持数字电视和IPTV中标清和高清应用的AVS视频解码芯片。此后,龙晶公司希望成为中国第一家供应完全符合AVS标准的便携低功耗芯片的公司。为此它将采用Diamond Standard 330HiFi音频处理器IP核完成便携AVS SoC的音频处理和系统控制功能。 龙晶科
[焦点新闻]
Keil C51对C语言的关键词扩展之十: pdata
外部ram通过一个地址指针寄存器来间接访问,读写效率要低于内部ram。 外部ram容量最大可位64KB。 Keil C51提供两种外部数据存储方式,pdata和xdata。 1)xdata存储类型,指示变量可存储在外部ram 64KB地址范围内任意位置。large内存模型下,变量即为此种默认存储类型。 2)pdata存储类型,指示变量可存储在外部ram 256字节页范围内任意位置。compact内存模型下,变量即为此种存储类型。 外部ram通过movx指令存取。
[单片机]
Xilinx数字显示器的可编程开发平台
东京电子器件有限公司 (TED) 与赛灵思公司 (Xilinx) 今天宣布推出一款可实现领先的显示器应用(如平板电视机监视器和显示器、背投电视机和数字投影仪)的高效设计和验证的开发平台。联合开发的 Spartan?-3E 显示器解决方案开发板利用Xilinx Spartan-3E FPGA 的性能和低成本优势为面向丰富特性的显示器应用提供了第一个完全可编程的开发平台。该解决方案平台采用快速转换原型开发板的形式,提供开发全功能显示器产品所需的全套集成 IP,以及在一块电路板上集成连接显示板模块和视频/调谐器板所需的丰富 I/O。 由于价格不断下降和政府强令推广数字节目,平板显示器市场是电子行业中增长最快的领域之一。显示板
[新品]