作者lihgong (人生,是一句引用句)
看板Electronics
标题NIOS II 心得 -- 简介
时间Wed Aug 8 10:40:16 2007
NIOS II 是 Altera 推出的 Soft-Core CPU
他是一颗简单的 CPU, 使用 FPGA 的 logic resource 合成的
所以这颗 CPU 有相当的弹性, 我感兴趣的特异功能有...
1. 可以调整 CPU 的参数, 比如 cache 大小
2. 可以调整 CPU 的周边, 比如多放一些 UART, 多放一些 timer, PWM
3. 可以自己订制 CPU 的指令
4. (还没想到)
如果只是写写程式, 那他跟一般的 MCU 一样
GPIO, 写control REG, 中断, Timer, 调整程式放的位置(I-RAM, SDRAM)
大概就这些东西
----
不过因为 CPU 的参数都可以调整, 玩起来又不大一样
以GPIO来说, GPIO有几根pin可以调, 对应到FPGA哪些脚位也可以调
GPIO是 memory-mapped IO, mapping到记忆体那个位置? 可调
GPIO接不接受外部中断? 可调, 也可以调整 level-trigger/ edge-trigger
以前看 data sheet 就是直接照单全收
现在因为什麽都可以选, 会去想为什麽会有这些设计
对硬体的认识会再深入一点 :)
----
Altera提供的 HAL (Hardware Abstraction Layer) 也满有意思的
他提供一套标准的流程去控制硬体, 提供周边硬体的 driver
这些 driver 都有提供 source code :D
初次看, 可以直接用, 看人家怎麽把硬体的存取介面标准化
第二次看, 看人家怎麽实作, 突然会发现, 原来自己以前写程式都有点恶搞
可能是功力不高, 我看到这些东西是有点惊讶的... (原来硬体可以这样包装)
我想以後碰到写driver的场合, 我可以写得更好些 :p
----
另外他的 HAL, 我隐隐约约觉得跟 OS 是有关连的
感觉是 OS 某些部分, 底层的程式, 需要靠 HAL 提供支援
阅读他的程式码, 我似乎可以感觉到...
为什麽有些硬体要这样设计
为什麽要有这些硬体
为什麽 OS 需要这些硬体的支援
他提供的开发套件, 有把 uOS 包装进去
玩到那边的时候, 我似乎就可以看到更底层一点的东西
----
Altera 这套 NIOS 可以从硬体玩到软体
他的软体层 (HAL) 提供不错的范例, 很值得深入看他的 source code
整个看下来, 对思考满有帮助的
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.236.184
※ 编辑: lihgong 来自: 140.113.236.184 (08/08 10:40)
1F:→ MasterChang:隔靴搔痒,只能给箭头罗...你有点搞错使用NIOS的方向 08/08 13:14
2F:推 moonls:推荐这篇文章, 也推楼上的推文 ! 08/09 02:29
3F:→ moonls:一楼说的没错! 08/09 02:29
4F:→ moonls:NIOS不是只拿来当 mcu用的而已 XD 08/09 02:30
5F:推 luckyBF:有人知道从哪自学NIOS 2的好方向吗~最近被IDE搞死....orz 08/10 17:14