其他语言例如C、C++、C#想对硬件编程例如硬盘,U盘这样的格式化分区怎么搞

烟雨平生丶 2014-10-13 10:59:34
希望广大大神积极回答,另外问一下有没有什么资料推荐
...全文
1821 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
猪头三小队长 2015-01-21
  • 打赏
  • 举报
回复
不论是硬盘还是还是U盘,其本质还是设备一侧有一颗类似于mcu一样的东西处理来自host的命令,当然命令格式要符合ATA/SCSI这些协议才行。而命令怎么发过去就要依赖于你的ATA/USB控制器如何实现的了,一般情况下会开放一些寄存器地址让你直接可读写,就跟你读写内存是一样的。 c是可以做到直接读写某地址的,c语言的特性就支持这一点,c++应该也可以,毕竟c++是c的超集,只要你有相应的编译器允许你在内核空间编译c++代码,或者是你有嵌入式的c++编译器,至于c#,不清楚了就,我猜悬,这种高级别的语言连内存分配释放什么的都不想让你操心了,还能让你直接操作硬件?估计得是调用系统接口交给内核处理了。
buyong 2015-01-12
  • 打赏
  • 举报
回复
system("fdisk c:\");
fly 100% 2015-01-12
  • 打赏
  • 举报
回复
依赖硬件平台的
猪头三小队长 2014-10-31
  • 打赏
  • 举报
回复
低级格式化是物理操作,实现基于特定硬件的ATA或者SCSI协议即可。高级格式化只是抹平你的文件分区表而已,分区我记忆中也只不过是一些软件上的概念,对于硬盘上一些分区表的数据操作而已。 协议直接看ATAPI v7之类的就行,代码看linux kernel,硬件控制器不一样,具体驱动也会不一样。
mz_zhang 2014-10-17
  • 打赏
  • 举报
回复
1 如果被操作器件 带系统 那就属于系统间通信操控 可以使用任何语言 usb通信即可 2 如果不带系统 那就是外围器件 只要驱动支持 上层语言直接操作驱动提供的接口进行配置操作 3 标准设备 看看 系统是否提供标准访问接口

1,025

社区成员

发帖
与我相关
我的任务
社区描述
Linux /Unix kernel支持不同的硬件体系,X86, ARM, MIPS, 等等
社区管理员
  • CPU和硬件区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧