首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于xilkernel的嵌入式应用程序设计方法 02

基于xilkernel的嵌入式应用程序设计方法 02

主要任务间的通讯方式和中断必需的配置

首先要生成连接脚本,是通过硬件需要生成的,此脚本反映了xilkernel需要的不同的段存储器。比如.vectors段被分配于一个有64kb地址边界的存储器的开始,而.boot段在0xfffffffc处。其余的代码和数据存储器可以放在任何地方。

图2 xilkernel模块结构

其次,xilkernel是作为一个库来架构的。这意味着应用程序源文件仅需要连接xilkernel,就能够访问xilkernel的功能。这些需要设置编译器的库连接选项为xilkernel,并在用户代码中包含“xmk.h”文件。应用程序提供main()入口,然后通过调用xilkernel_main()作为内核的入口点。产生库、bsp并编译程序后,xilkernel将自动作为系统启动、初始化硬件核、中断和软件处理程序的一部分。下面是一个简单的内核入口代码:
#include "xmk.h"
/* 定义和声明 */
int main()
{
/* 用户完成预处理,不允许调用内核接口 */
xilkernel_main (); /* 开始内核 */
/* 程序不会执行到这里 */
}
/* 系统的静态任务 */
void * first_thread ()
{
/* 产生一些线程来处理用户需要 */
}
线程的创建
线程的创建及属性的简单设置可以由下面几个函数实现:
int pthread_attr_init (pthread_attr_t* attr)
int pthread_attr_setschedparam (pthread_attr_t* attr, struct sched_param *schedpar)
int pthread_create (pthread_t thread,pthread_attr_t* attr, void* (*start_func)(void*),void* param)
pthread_attr_init()初始化线程的属性。thread_attr_setschedparam()来设置线程的优先级,attr是线程的属性,schedpar是包含有线程优先级的数据结构。pthread_create()创建一个线程,
返回列表