完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
现在自己的基础: 项目经验:做过四轴飞行器项目,简单2D画图机
平台经验:会用STM32 MSP430 51 单片机 和CPLD 编程语言:C/C++,JAVA 硬件驱动 : 写过液晶屏,摄像头驱动程序,无线蓝牙。(流水灯什么的就不算了) 目标很简单:读懂linux内核,因为之前用单片机做底层开发,感觉自己可以弄懂其中硬件的原理。只要完全读懂了linux的内核,那就可以修剪linux,创造自己的操作系统。准备用ARM11来作为移植linux的平台 现在在做什么: linux的内核太复杂,牵扯到很多数据结构,我还是刚上大三的本科生,很多数据结构得自己补习。 给自己的短期目标就是:读懂一个轻量级的操作系统内核 -------FreeRTOS 为什么要读linux内核: linux 的网络特性是其他操作系统难以企及的,现在是物联网的时代,很多嵌入式产品需要有强大网络功能作为后台,毫无疑问的是,linux已经霸占了服务器了。所以想读懂他。但就我现在这个水平还差很远。 不知道有没有相同指向的同僚,可以一起讨论。我会在这帖子里发布一些自己的学习历程,也算是我努力奋斗的见证! |
|
相关推荐
15个回答
|
|
3月19日 单向链表基本全部写完
struct Node//定义节点的数据结构 { int Data;//数据 Node * Next;//递归调用自身,指向下一个节点指针地址,指向下一个结构体的地址 }; class List{ Node *head; //创建一个指针类似数组的第一个元素,这一步基本上代表了已创建链表 public: Node* CreateList(int n); //工作要求,创建深度为n的链表 ,成功 void OutputList(Node * L); //工作要求,输出链表,成功 int LenthList(Node * L); //工作要求,输出链表长度 ,成功 void ClearList(Node * L); //工作要求,清空当前链表,成功 Node* DeleteList(Node * L,int nData); //删除当前链表的第几个节点 void insertList(int aDate,int bDate); //链表结点的插入 } 定义了一些方法,都是自己独立编程,掌握一个重要的数据结构。 linux的队列方面好像用的就是这个数据结构 自己写了个shell程序 linux的shell功能实现应该和我的方法差不多 unsigned char doString(char *str) { if(strcmp(str,"HELP")==0) return 0; if(strcmp(str,"CreateList")==0) { return 1; } if(strcmp(str,"LenthList")==0) { return 2; } if(strcmp(str,"OutputList")==0) { return 3; } if(strcmp(str,"ClearList")==0) { return 4; } if(strcmp(str,"DeleteList")==0) { return 5; } return 99; } void ListShell(void) { char str[50]; Node * TEMPN; //节点存放位置,现在最多支持查询一个链表,声明为全局变量 List TEMP; //方便使用函数 int n=0;//存放深度 cout<<"单项链表Shell程序,更新时间9月8日"< { cout<<"intput command@Jingyan: "; cin>>str; //输入指令 switch( doString(str)) { case 0: cout<<"当前可用指令 n CreateList(int n)//创建深度为n的链表n OutputList//输出当前链表的内容n LenthList//查询当前链表长度n ClearList//清除当前链表n DeleteList//删除当前链表的第几个节点n"; break; case 1: cout<<"输入链表深度 n"< case 99: cout<<"指令不正确,输入HELP查询可使用指令n或者询问开发者陈景研"< } } int main() { ListShell();// 启动shell 管理程序 return 0;//一直执行这个程序,理论上不会执行到这一步 } |
|
|
|
|
|
|
|
是 谢谢提醒啊 |
|
|
|
Linux现在已经商业化了,要学习操作系统设计过于复杂。可以自己用FPGA先设计一个能够执行用户程序的单片机试试,就会弄明白操作系统的内核是怎么回事,在具有了这方面的基础之后,再去研究商用操作系统内核设计会好些。
|
|
|
|
少年,加油咯!明确目标就能做好。
|
|
|
|
极力推荐《由尚德系列讲座之linux内核编程入门》,学习linux内核从0.11版本的源码开始看起,这个视频讲源码讲的很详细,一行一行的讲 来自微博——电子发烧友lisa
|
|
|
|
感觉楼主高大上啊~
|
|
|
|
楼主大三就这么有追求了! 想想自己大学那会,真心低端啊!楼主加油!
|
|
|
|
嘿嘿!原来群主的英文名就是lisa啊! 这个资料我下载了,目前只到第四部分! |
|
|
|
FPGA写单片机吗?FPGA没有单片机灵活,写起来不方便吧。我个人认为FPGA超越单片机的地方仅仅在于他的程序可以并行执行的,而单片机只能是单核心,我认为操作系统很难在FPGA上实现,毕竟很少有人在这上面花时间。VHDL我也学过一些,实在是没有C语言完美啊~ |
|
|
|
谢谢指点,我会看的 |
|
|
|
楼主,FPGA只是一个材料工场,你想做什么电路设计都可以。你可以将FPGA设计成单片机,而且能让这个单片机是多核的。操作系统怎么不能在FPGA上设计?VHDL和Verilog HDL都是硬件编程语言,c是软件程序设计语言,它们作用不同。单片机用汇编会效率更高,不用c语言完全可以。楼主这么年轻,前途无量。弄明白CPU设计对你学习操作系统会帮助更大。
|
|
|
|
请问,FPGA有开源的操作系统代码么?操作系统貌似需要很多人来维护开发的吧,我不认为我能独立撰写操作系统,内存调度,任务管理。我感觉在已有操作系统的基础上做出修改和剪裁,这个能力我还是有的~~ |
|
|
|
我觉得楼主应该掌握操作系统原理就好了,然后需要改哪一部分,再慢慢研究哪一部分;
个人认为楼主见解比较片面; FPGA也好,单片机也好,都是用来完成我们需要的工作任务的利器,不存在谁比谁灵活,只有谁更适合做哪一类工作。 |
|
|
|
楼主留个qq交流呀
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
377 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
536 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
540 浏览 0 评论
950 浏览 0 评论
如何用OpenCV的相机捕捉视频进行人脸检测--基于米尔NXP i.MX93开发板
1403 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11760 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 07:39 , Processed in 0.830553 second(s), Total 103, Slave 84 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号