
| 减少ASIC、ASSP、SoC及FPGA等产品的开发延时 讲授、演示原则和最佳实践 为常见问题和缺陷提供解答以节省时间和精力 |
| 《硬件/固件接口设计—提高嵌入式系统开发效率的最佳实践》 第1章 引言1 1.1 硬件/固件接口2 1.1.1 硬件、芯片及组件2 1.1.2 固件和设备驱动程序5 1.2 最佳实践6 1.2.1 原则7 1.2.2 原则和实践带来的好处8 1.3 “一次成功”还意味着……8 1.3.1 更易于编程9 1.3.2 更易于调试9 1.3.3 更易于变通地解决缺陷9 1.4 目标读者10 1.4.1 硬件工程师10 1.4.2 固件工程师10 1.4.3 本书在大学环境中的应用11 1.5 项目的生命周期11 1.6 案例研究12 1.6.1 unity asic中的单色 视频组件12 .1.6.2 优秀示例的案例研究13 1.7 小结14 1.8 参考文献14 第2章 原则15 2.1 硬件/固件接口设计的七项 原则15 2.1.1 协同设计15 2.1.2 确定并遵循标准17 2.1.3 均衡负载18 2.1.4 设计要考虑兼容性20 2.1.5 预测影响20 2.1.6 设计要考虑意外21 2.1.7 事先计划23 2.2 小结23 第3章 合作25 3.1 第一步25 3.1.1 角色25 3.1.2 启动会议27 3.2 正式合作28 3.2.1 例会28 3.2.2 初期的固件支持29 3.2.3 联合开发技巧30 3.2.4 后期的硬件支持32 3.2.5 文档33 3.3 非正式合作34 3.3.1 正式的组织结构35 3.3.2 硬件工程师的主动性35 3.3.3 固件工程师的主动性36 3.3.4 合作解决问题37 3.4 小结38 3.5 参考文献38 第4章 计划39 4.1 行业标准39 4.1.1 既有标准39 4.1.2 实现标准40 4.1.3 标准的扩展与创建42 4.2 通用版本43 4.3 兼容性44 4.3.1 向后及向前兼容的范围44 4.3.2 新旧版本的组合45 4.4 缺陷46 4.4.1 归档缺陷46 4.4.2 修复缺陷47 4.4.3 查找缺陷的测试计划49 4.5 分析49 4.5.1 共用引脚49 4.5.2 缓冲区管理50 4.5.3 硬件/固件交互51 4.5.4 分析第三方的ip52 4.6 事后检查53 4.7 小结53 第5章 文档55 5.1 类型55 5.1.1 文档的级别和类型56 5.1.2 芯片级文档与组件级文档56 5.1.3 支持与不支持文档58 5.2 文档管理60 5.2.1 文档标准60 5.2.2 何时编写文档60 5.2.3 准确性61 5.3 审阅62 5.3.1 何时审阅62 5.3.2 跟踪文档变化63 5.3.3 固件工程师应承担的 审阅责任64 5.4 内容65 5.4.1 大体内容65 5.4.2 模板文档示例66 5.4.3 历史66 5.4.4 功能与假设68 5.4.5 参考和教程69 5.4.6 术语表和勘误表70 5.5 寄存器71 5.5.1 寄存器文档71 5.5.2 寄存器设计工具72 5.5.3 寄存器表75 5.5.4 寄存器的细节和描述75 5.6 数据位77 5.6.1 寄存器映射格式77 5.6.2 数据位的位置、 类型及默认值78 5.6.3 数据位的描述80 5.6.4 中止的影响80 5.6.5 测试及调试数据位81 5.7 中断81 5.7.1 边沿触发型中断和电平触 发型中断81 5.7.2 中断的使能与应答82 5.7.3 中断尚未完全完成83 5.7.4 无介入的重复中断83 5.8 时间84 5.8.1 时间范围84 5.8.2 时间单位85 5.9 错误86 5.9.1 两种类型的错误87 5.9.2 有关错误的丰富信息87 5.9.3 发生错误后组件的状态88 5.9.4 固件恢复的步骤89 5.10 信息89 5.10.1 非法配置89 5.10.2 状态机90 5.10.3 如何中止90 5.11 小结91 第6章 超级组件93 6.1 超级组件的优点93 6.1.1 组件的附属资源94 6.1.2 包含未使用逻辑的理由94 6.1.3 反对包含未使用逻辑的 理由97 6.2 联合99 6.2.1 设计超级组件99 6.2.2 制作超级模块100 6.2.3 改进设计101 6.2.4 添加未来的功能102 6.2.5 超级组件的版本号103 6.3 i/o信号103 6.4 参数化105 6.4.1 减少硅片空间105 6.4.2 参数化风险的最小化106 6.4.3 固件的参数化信息107 6.4.4 可选的与固定的寄存器及 数据位109 6.5 小结110 6.6 参考文献111 第7章 设计113 7.1 事件通知113 7.1.1 无指示114 7.1.2 延时114 7.1.3 状态位116 7.1.4 中断118 7.2 性能120 7.2.1 增大缓冲区120 7.2.2 提前工作121 7.2.3 调整122 7.2.4 裕度122 7.3 上电122 7.3.1 上电时的交互122 7.3.2 i/o线路的上电状态123 7.3.3 组件级的电源控制124 7.4 通信与控制124 7.4.1 错误信息124 7.4.2 dma功能125 7.4.3 i/o引脚共享126 7.4.4 隐藏实现细节127 7.5 小结128 第8章 寄存器131 8.1 寻址132 8.1.1 处理器访问132 8.1.2 芯片的基址134 8.1.3 组件的偏移量和基址135 8.1.4 寄存器的偏移量137 8.1.5 子组件137 8.1.6 迸发138 8.1.7 未使用的地址单元138 8.1.8 下一代芯片的变化139 8.2 位分配141 8.2.1 分配数据位的位置141 8.2.2 多位字段142 8.2.3 多寄存器字段144 8.2.4 未使用的数据位单元145 8.2.5 下一版本的变化146 8.2.6 数据位类型148 8.2.7 寄存器中的数据位类型151 8.2.8 根据操作模式编组152 8.2.9 组件的多次例化153 8.3 数据类型154 8.3.1 整数154 8.3.2 实数156 8.3.3 指针159 8.3.4 常数160 8.4 硬件标识161 8.4.1 芯片id和版本161 8.4.2 组件id和版本162 8.5 通信与控制163 8.5.1 必要的信息163 8.5.2 组件中的排队任务164 8.5.3 一致的寄存器内容167 8.5.4 访问原子寄存器168 8.6 小结172 第9章 中断173 9.1 设计173 9.1.1 中断超级模块174 9.1.2 分级的中断结构176 9.1.3 中断共享177 9.1.4 中断源信号的完整性178 9.1.5 中断触发的类型179 9.2 待决寄存器183 9.2.1 应答中断183 9.2.2 中断位置的次序185 9.3 使能寄存器186 9.3.1 1使能中断187 9.3.2 使能控制中断187 9.3.3 使能的默认设置188 9.4 可选的寄存器188 9.4.1 中断源状态寄存器189 9.4.2 抢占寄存器190 9.4.3 原子使能寄存器/原子关闭 寄存器190 9.4.4 屏蔽寄存器190 9.4.5 例化寄存器191 9.4.6 可选寄存器的地址191 9.5 中断模块回顾192 9.5.1 中断通道193 9.5.2 中断模块195 9.5.3 外部连接196 9.6 双边沿触发196 9.6.1 利用两个中断通道197 9.6.2 头边沿和尾边沿中断的 通道位置198 9.7 使用中断模块200 9.7.1 何时分配中断通道200 9.7.2 重复中断201 9.7.3 地址映射201 9.8 小结202 第10章 中止等205 10.1 定义205 10.2 停止206 10.3 复位207 10.4 中止208 10.4.1 中止的必要性208 10.4.2 固件与中止的交互210 10.4.3 中止的行为212 10.4.4 中止组件间的交互213 10.5 小结214 第11章 钩子217 11.1 针对钩子的设计218 11.1.1 增加哪些钩子218 11.1.2 增加寄存器219 11.1.3 查找潜在问题区域219 11.1.4 删除变通措施220 11.2 查看220 11.2.1 内部寄存器220 11.2.2 信号221 11.2.3 存储器222 11.2.4 状态机223 11.3 打探225 11.3.1 破坏性的读写225 11.3.2 输入和输出信号226 11.3.3 重写寄存器226 11.4 监视227 11.4.1 事件跟踪227 11.4.2 定时器228 11.4.3 数据观察229 11.5 其他钩子229 11.5.1 旁路230 11.5.2 测试和调试所需的 附加资源231 11.5.3 专用处理器233 11.6 小结233 第12章 结束语235 12.1 要点235 12.2 受益235 12.3 硬件/固件接口设计的七项 原则236 12.4 产品终于可以运转了! 开始发货吧!236 附录a 最佳实践239 附录b 电动车控制器的规范251 附录c 将本书作为大学教材265 附录d 术语表271 |
商品评论(0条)