《源码开放的嵌入式实时操作系统T-Kernel》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(日)坂村健等著;周立功等译
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2005
  • ISBN:7810777343
  • 页数:328 页
图书介绍:本书从T-Kernel、T-Engine和ITRON关系及结构入手,详细介绍T-Kernel规范、通用T-Kernel规范,特别是对T-Kernel函数和使用范围进行了细致、全面的介绍。

第1部分 T-Engine工程和T-Kernel 3

1 何谓T-Engine 3

2 单一源化的T-Kernel和T-License 6

3 T-Engine开发组件 7

4 T-Engine的系统构成 9

4.1 标准开发平台T-Engine 9

4.2 T-Engine的软件构成 11

4.3 T-Kernel概要 13

4.4 T-Kernel的核心对象 14

4.5 T-Kernel的动态资源管理 15

4.6 T-Kernel的内存管理 16

4.7 T-Kernel的标准化 18

第2部分 T-Kernel规范 21

1 T-Kernel概述 21

1.1 T-Kernel定位 21

1.2 可裁剪性 22

2 T-Kernel规范的基本概念 24

2.1 基本术语 24

2.2 任务状态和调度规则 25

2.2.1 任务状态 25

2.2.2 任务调度规则 28

2.5.1 非任务部分执行时的系统状态 31

2.5 系统状态 31

2.4 任务异常处理 31

2.3 中断处理 31

2.5.2 任务无关部分(运行状态)与准任务部分(运行状态) 32

2.6 对象 34

2.7 内存 35

2.7.1 地址空间 35

2.7.2 非驻留内存 35

2.7.3 保护级别 36

3 通用T-Kernel规范 37

3.1 数据类型 37

3.1.1 普通数据类型 37

3.1.2 其他定义的数据类型 39

3.2 系统调用(函数) 40

3.2.1 系统调用(函数)格式 40

3.2.2 在任务无关部分(状态)中可用的系统调用(函数) 40

3.2.3 限制系统调用函数的调用 41

3.2.4 参数数据包的修改 41

3.2.5 函数代码 42

3.2.6 错误代码 42

3.2.7 时限 43

3.2.8 相对时间和系统时间 44

3.3 高级语言支持程序 45

4.1 任务管理函数 46

tk_cre_tsk(建立任务) 46

4 T-Kernel/OS函数 46

tk_del_tsk(删除任务) 51

tk_sta_tsk(启动任务) 51

tk_ext_tsk(退出调用任务) 52

tk_exd_tsk(退出和删除调用任务) 53

tk_ter_tsk(终止其他任务) 54

tk_chg_pri(改变任务的优先级) 55

tk_chg_slt(改变任务时间片) 57

tk_get_tsp(获取任务固定空间) 58

tk_set_tsp(设置任务固定空间) 59

tk_get_rid(获取任务资源ID) 60

tk_set_rid(设置任务资源ID) 61

tk_get_reg(获取任务寄存器的内容) 61

tk_set_reg(设置任务寄存器) 62

tk_get_cpr(获取协处理器寄存器的内容) 63

tk_set_cpr(设置协处理器寄存器) 64

tk_inf_tsk(获取任务统计信息) 65

tk_ref_tsk(查询任务状态) 66

tk_slp_tsk(使调用任务进入睡眠状态) 69

4.2 任务相关的同步函数 69

tk_wup_tsk(唤醒其他任务) 70

tk_can_wup(取消唤醒任务) 71

tk_rel_wai(释放等待) 72

tk_sus_tsk(挂起其他任务) 74

tk_frsm_tsk(强制恢复挂起状态的任务) 75

tk_rsm_tsk(恢复挂起状态的任务) 75

tk_sig_tev(发送任务事件) 77

tk_dly_tsk(延迟任务) 77

tk_wai_tev(等待任务事件) 78

tk_dis_wai(禁止任务等待) 79

4.3 任务异常处理函数 82

tk_ena_wai(允许任务等待) 82

tk_def_tex(定义任务异常处理程序) 83

tk_dis_tex(禁止任务异常) 85

tk_ena_tex(允许任务异常) 85

tk_ras_tex(提交任务异常) 86

tk_end_tex(终止任务异常处理程序) 87

tk_ref_tex(查询任务异常状态) 88

4.4.1 信号量 89

4.4 同步和通信函数 89

tk_cre_sem(建立信号量) 90

tk_sig_sem(释放信号量) 92

tk_del_sem(删除信号量) 92

tk_wai_sem(等待信号量) 93

tk_ref_sem(查询信号量状态) 94

4.4.2 事件标志 95

tk_cre_flg(建立事件标志) 96

tk_del_flg(删除事件标志) 97

tk_clr_flg(清除事件标志) 98

tk_set_flg(设置事件标志) 98

tk_wai_flg(等待事件标志) 99

tk_ref_flg(查询事件标志状态) 102

4.4.3 邮箱 103

tk_cre_mbx(建立邮箱) 104

tk_del_mbx(删除邮箱) 106

tk_snd_mbx(发送消息到邮箱中) 107

tk_rcv_mbx(接收邮箱中的消息) 108

tk_ref_mbx(查询邮箱状态) 109

4.5 扩展同步和通信函数 110

4.5.1 互斥体 110

tk_cre_mtx(建立互斥体) 112

tk_del_mtx(删除互斥体) 114

tk_loc_mtx(锁定互斥体) 115

tk_unl_mtx(解锁互斥体) 116

tk_ref_mtx(查询互斥体状态) 117

4.5.2 消息缓冲区 118

tk_cre_mbf(建立消息缓冲区) 119

tk_snd_mbf(发送消息到消息缓冲区) 122

tk_del_mbf(删除消息缓冲区) 122

tk_rcv_mbf(从消息缓冲区中接收消息) 124

tk_ref_mbf(获取消息缓冲区的状态) 125

4.5.3 集合点端口 126

tk_cre_por(建立集合点端口) 128

tk_cal_por(调用集合点端口) 130

tk_del_por(删除集合点端口) 130

tk_acp_por(接受集合点端口) 132

tk_fwd_por(转发集合点到其他端口) 136

tk_rpl_rdv(回应集合点) 140

tk_ref_por(查询端口状态) 142

4.6.1 固定大小的内存池 143

4.6 内存池管理函数 143

tk_cre_mpf(建立固定大小的内存池) 144

tk_get_mpf(获取固定大小的内存块) 146

tk_del_mpf(删除固定大小的内存池) 146

tk_ref_mpf(查询固定大小的内存池的状态) 148

tk_rel_mpf(释放固定大小的内存块) 148

4.6.2 大小可变的内存池 149

tk_cre_mpl(建立大小可变的内存池) 150

tk_del_mpl(删除大小可变的内存池) 152

tk_get_mpl(获取大小可变的内存块) 153

tk_rel_mpl(释放大小可变的内存块) 154

tk_ref_mpl(查询大小可变的内存池的状态) 155

tk_set_tim(设置系统时间) 156

4.7.1 系统时间管理函数 156

4.7 时间管理函数 156

tk_get_otm(获取运行时间) 157

tk_get_tim(查询系统时间) 157

4.7.2 周期性处理程序 158

tk_cre_cyc(建立周期性处理程序) 159

tk_sta_cyc(启动周期性处理程序) 162

tk_del_cyc(删除周期性处理程序) 162

tk_stp_cyc(停止周期性处理程序) 163

tk_ref_cyc(查询周期性处理程序的状态) 163

4.7.3 报警处理程序 164

tk_cre_alm(建立报警处理程序) 165

tk_del_alm(删除报警处理程序) 167

tk_sta_alm(启动报警处理程序) 167

tk_stp_alm(停止报警处理程序) 168

tk_ref_alm(查询报警处理程序的状态) 169

tk_def_int(定义中断处理程序) 170

4.8 中断管理函数 170

tk_ret_int(从中断处理程序中返回) 173

tk_rot_rdq(翻转就绪队列) 175

4.9 系统管理函数 175

tk_get_tid(获取任务标识符(ID)) 176

tk_dis_dsp(禁止分派) 177

tk_ena_dsp(允许分派) 178

tk_ref_sys(查询系统状态) 179

tk_set_pow(设置电源模式) 180

tk_ref_ver(查询版本信息) 182

4.10 子系统管理函数(功能) 184

tk_def_ssy(定义子系统) 185

tk_cln_ssy(调用子系统的清除函数) 190

tk_sta_ssy(调用子系统的启动函数) 190

tk_evt_ssy(调用子系统的事件处理函数) 191

tk_ref_ssy(查询子系统的状态) 192

tk_cre_res(建立资源组) 193

tk_get_res(获取资源管理块) 195

tk_del_res(删除资源组) 195

5 T-Kernel/SM函数 197

tk_ref_smb(查询系统内存块) 198

tk_rel_smb(释放系统内存块) 198

tk_get_smb(分配系统内存块) 198

5.1.1 系统内存分配 198

5.1 系统内存管理函数 198

5.2 地址空间管理函数 199

Krealloc(重新分配驻留内存) 199

5.1.2 内存分配库 199

Vrealloc(重新分配非驻留内存) 199

Vmalloc(分配非驻留内存) 199

Vcalloc(分配非驻留内存单元) 199

Kcalloc(分配驻留内存单元) 199

Kmalloc(分配驻留内存) 199

Vfree(释放非驻留内存) 199

Kfree(释放驻留内存) 199

SetTaskSpace(设置任务空间) 200

5.2.1 地址空间配置 200

5.2.2 地址空间检查 200

ChkSpaceTstrRW(检查读-写访问权(TRON代码)) 201

ChkSpaceTstrR(检查读访问权(TRON代码)) 201

ChkSpaceRW(检查读-写访问权) 201

ChkSpaceRE(检查读-执行访问权) 201

ChkSpaceR(检查读访问权) 201

ChkSpaceBstrR(检查读访问权(字符串)) 201

5.2.3 锁定地址空间 201

ChkSpaceBstrRW(检查读-写访问权(字符串)) 201

5.2.5 映射内存 202

MapMemory(映射内存) 202

5.2.4 获取物理地址 202

CnvPhysicalAddr(获取物理地址) 202

LockSpace(锁定地址空间) 202

UnlockSpace(解锁地址空间) 202

UnmapMemory(解除映射内存) 203

5.3.1 基本概念 203

5.3 设备管理函数 203

5.3.2 应用程序接口 206

tk_opn_dev(打开设备) 207

tk_cls_dev(关闭设备) 208

tk_rea_dev(读取设备数据) 209

tk_wri_dev(写入设备数据) 210

tk_srea_dev(同步读) 210

tk_swri_dev(同步写) 211

tk_wai_dev(等待设备) 211

tk_sus_dev(挂起设备) 212

tk_ref_dev(通过设备名查询设备) 214

tk_oref_dev(通过设备描述符查询设备) 214

tk_get_dev(获取设备名称) 214

tk_evt_dev(发送驱动器请求事件) 215

tk_lst_dev(获取注册的设备信息) 215

5.3.3 设备注册 216

tk_def_dev(注册设备) 217

tk_ref_idv(查询设备初始化信息) 218

5.3.4 设备驱动程序接口 218

5.3.5 属性数据 224

5.3.6 设备事件通知 226

5.3.7 设备挂起/恢复处理 227

5.3.8 磁盘驱动程序的特殊作用 228

5.4 中断管理函数 229

5.4.1 CPU中断控制 229

isDI(获取中断禁止的状态) 230

EI(允许中断) 230

DI(禁止中断) 230

5.4.2 中断控制器的控制 230

T-Kernel API索引 231

本规范中描述的T-Kernel API(系统调用、扩展SVC、库和宏)按字母顺序列出如下。CheckInt(检查中断) 231

5.5 I/O端口访问支持函数 231

ClearInt(清除中断) 231

DINTNO(获取中断定义编号) 231

DisableInt(禁止中断) 231

EnableInt(允许中断(中断优先级)) 231

EndOfInt(发出中断结束) 231

WaitNsec(Microwait(ns)) 232

WaitUsec(Microwait(μs)) 232

out_h(写半字数据) 232

in_w(读字数据) 232

in_h(读半字数据) 232

in_b(读字节数据) 232

out_w(写字数据) 232

out_b(写字节数据) 232

5.5.2 Micro等待 232

5.5.1 I/O端口访问 232

5.6 电源管理函数 233

5.7 系统配置信息管理函数 233

low_pow(进入低功耗模式) 233

off_pow(挂起系统) 233

5.7.1 获得系统配置信息 234

tk_get_cfn(获取数字串) 234

tk_get_cfs(获取字母串) 235

5.7.2 标准系统配置信息 235

5.8 子系统和设备驱动程序启动 236

6 T-Kernel/DS函数 239

td_lst_sem(查询对象ID列表) 240

td_lst_por(查询对象ID列表) 240

td_lst_ssy(查询对象ID列表) 240

td_lst_tsk(查询对象ID列表) 240

td_lst_flg(查询对象ID列表) 240

td_lst_mtx(查询对象ID列表) 240

td_lst_mpl(查询对象ID列表) 240

td_lst_mpf(查询对象ID列表) 240

td_lst_mbx(查询对象ID列表) 240

td_lst_cyc(查询对象ID列表) 240

td_lst_alm(查询对象ID列表) 240

td_lst_mbf(查询对象ID列表) 240

6.1 内核内部状态查询函数 240

td_cal_que(查询队列) 241

td_acp_que(查询队列) 241

td_smbf_que(查询队列) 241

td_flg_que(查询队列) 241

td_sem_que(查询队列) 241

td_rdy_que(获得优先执行的任务) 241

td_mtx_que(查询队列) 241

td_rmbf_que(查询队列) 241

td_mbx_que(查询队列) 241

td_mpl_que(查询队列) 241

td_mpf_que(查询队列) 241

td_ref_tsk(查询任务状态) 242

td_ref_ssy(查询对象状态) 244

td_ref_sem(查询对象状态) 244

td_ref_alm(查询对象状态) 244

td_ref_cyc(查询对象状态) 244

td_ref_por(查询对象状态) 244

td_ref_flg(查询对象状态) 244

td_ref_mbf(查询对象状态) 244

td_ref_mbx(查询对象状态) 244

td_ref_mpf(查询对象状态) 244

td_ref_mpl(查询对象状态) 244

td_ref_mtx(查询对象状态) 244

td_ref_tex(查询任务异常状态) 247

td_inf_tsk(查询任务统计信息) 248

td_set_reg(设置任务寄存器) 249

td_get_reg(获得任务寄存器) 249

td_ref_sys(查询系统状态) 250

td_get_tim(获得系统时间) 251

td_get_otm(获得系统运行时间) 252

td_ref_dsname(查询DS对象名称) 253

td_set_dsname(设置DS对象名称) 254

6.2 执行跟踪函数 255

td_hok_svc(定义系统调用/扩展SVC挂钩程序) 255

td_hok_dsp(定义任务分派挂钩程序) 257

td_hok_int(定义中断处理挂钩程序) 258

第3部分 T-Monitor规范 263

1 T-Monitor规范概述 263

2 系统函数 264

2.1 硬件初始化 264

2.2 系统启动 264

2.3 异常/中断/陷阱处理函数 265

3.2 命令格式 266

3 调试函数 266

3.1 控制台连接 266

3.3 命令列表 268

4 程序支持函数 286

5 引导处理的细节 293

5.1 引导处理概述 293

5.2 搜索可引导的设备 293

5.3 装载和启动主引导程序 294

第4部分 T-Engine相关参考文献目录 297

1 T-Engine的相关专刊 297

2 T-Engine的相关大事记总索引(2002年1月~2005年4月) 298

3 你该如何使用T-Kernel 306

4 T-License[T-Kernel的源代码许可协议] 308

第5部分 参考 315

1 C语言接口的列表 315

2 错误代码列表 324

3 修订记录 327