Chinaunix首页 | 论坛 | 博客
  • 博客访问: 92208
  • 博文数量: 19
  • 博客积分: 442
  • 博客等级: 下士
  • 技术积分: 190
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-11 15:31
文章分类
文章存档

2011年(19)

分类: 嵌入式

2011-10-10 09:40:11

嵌入式系统开发的特征:
1、可能没有操作系统。
   要直接存取寄存器或内存的内容。
2、程序的编译和执行在不同平台。
3、输入输出界面。
4、资源有限。内存有限,没有虚存。
5、常常跟硬件打交道。和硬件工程人员良好互动。
 
嵌入式操作系统:提供micro kernel 微核心
                提供:内存管理
                      多工处理
                      外围资源管理
开机:boot loader。
      包括:boot code。初始化处理器。通常CPU厂商提供。
            初始化必备硬件: CPU、RAM、管脚。关闭所有输入管脚,防止信号进入。
            初始化操作系统:开启内存管理、开启中断控制、中断向量表、计时器、调度。
 
设计考虑些什么:
      成本。数量(保证成本)。周期(消费产品快速)。
一旦决定商业因素后,才会确定技术层面问题。所谓商品,就是要卖得掉才行。
      硬件平台:包括CPU、内存
      可靠性:
 
开发:选定cpu板。看提供什么样的开发工具和环境。
根据硬件说明书进行控制。
例代码:
#define M328_BASE 0xFFFFF000L             ---控制器的基地址
#define M328_PLLCR ((unsigned short *)(M328_BASE+0x200))    //PLL Control Register   --PLL寄存器的地址。
//PLL Modeule
#define PLL_DISABLE 0x0008 //bit 3 =1     ---说明书上:第3位控制开关
 
void disablePLL(void)
{
     *M328_PLLCR |= PLL_DISABLE;           --置为1,代表关
}
 
写驱动:
1、读懂规格书,能够存取每个装置的管脚。
2、注册中断函数。让操作系统了解中断跑哪些函数。
3、写驱动API,让用户可以调用。
 
写驱动的注意事项:
程序占用的内存空间不能太大。
程序的计算资源要低。
程序的响应要快。
中断程序的时间要短。
移植性高。
机制简单。(驱动不要多线程支持,不要虚存支持,不要浮点运算)
减少状态变量。(状态最好从硬件中获得)
 
常用格式:
声明基地址,包括控制寄存器、数据寄存器、内存基地址
遮罩常数声明,例如某位遮罩代表什么ENABLE
状态常数声明,
常用功能宏
 
 
 
阅读(2132) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~