共3条
1/1 1 跳转至页
A web server on the GBA? But why?!
A web server on the GBA? But why?!
Because I can? :-)
But that wouldn't do as justification for my final project, so it's really an investigation into the possibility of including very small web servers in every day equipment in order to monitor it. A good example would be a burglar alarm. You could easily check that it was still working and that everything was ok in your house while you were on holiday if the alarm was connected to the internet.
Fair enough, but why the long name?
Well, GBA Web Server wouldn't sound too professional and could lead people to questioning the validity of my project!
Portable never used to be in the name, what's changed?
After spending a lot of time thinking about it, I want to develop the web server for the Dreamcast as well anyway. The portable in the name simply means that the source code (other than the kernel) should recompile for other systems without needing any major changes. Basically, the word portable gives me a get out clause so that I can target the web server for any system (hey, I'd love to do an Xbox version) and still fulfill my original aim.
Where will the web servers live when you complete it?
This I'm not 100% sure of. It depends on where my ISP finds space for it (not that it requires much!). It'll either be in Manchester, Bradford or Harrogate. However, these details are of little interest to yourself! All you need to know is that the URL will be http://gba.fivemouse.com and http://dreamcast.fivemouse.com when the server goes live.
So what will be involved in making this project a reality?
Lots of things, but here's a list of the most important features (in no particular order). Expect this list to change as I add more details.
Very small Multi-tasking kernel (no memory management required)
Com port driver
Display and input driver
PPP protocol
IP protocol
TCP protocol
Method to connect the GBA to a server
Please see the project plan and the to do list for a more complete list.
How will you be developing the web server?
The first items that I will develop will be the protocols. Because these are platform independent, I will be able to develop them under Windows using VC++. This is because I can use the PC com port for I/O and easily debug the modules as I work on them. When I have got these working and have tested them fully, I will simply run the source files through GCC targeted at the ARM processor.
As for the kernel and device drivers, hopefully, by the time I come round to developing these, KOS might have full support for IRQs on the GBA. I will then use KOS to provide a kernel and drivers. If KOS doesn't supply the required level of support by the time that I require it, I will then have to develop my own micro-kernel and drivers. (Note, even though KOS does have some TCP/IP support, I wont be using it as I aim to write my own to serve a particular need.)
What will you do if you can't get the web server to work on the GBA?
The other advantage of having an ambiguous project name is that it doesn't specify the target system. :-)
If getting the web server on the GBA is beyond my reach, I will simply move development over to the Dreamcast. After all, it could be argued that the Dreamcast is a low memory embedded system. I aim to have a vast majority of the project written in portable C so that it can easily be moved from one platform to another. The only parts that wont be portable will be the micro-kernel and the device drivers. To save myself time, I will develop these last.
So where did you get the idea for this from?
I've been thinking about it for quite a while now. The first time I thought of putting a web server on a games console was over a year ago, around the time the Xbox was announced. But the original idea goes back further than that! About two years ago, I stumbled across this web site and thought to myself, what a great idea, I've love to build a tiny web server one day. Of course, a GBA web server will be quite a bit bigger, but it's still quite dinky!
That all sounds really cool! Can I help?
I'm afraid not. As it's my final project, I have to work on it alone. However, I do plan to release all my sources as I'm working on it so you can follow it that way if you wish.
Right, now that's all cleared up, what have you got to show us?
Erm, not much really. I have one last major document to put up before I start development work, and that is an explanation of how a web server works.
If you want to keep up to date with my progress, read my development diary.
My Documents:
Acknowledgments (04-04-2002)
Time Table (08-10-2001)
This is just a copy of my university time table for the year. It should give you an idea of how much time I have to work on the project.
Project Proposal v1 (08-10-2001)
System Layout (12-10-2001)
Project Planning (22-10-2001)
To Do List (06-04-2002)
This document should be updated quite frequently.
Project Status Snapshot (06-04-2002)
Project Proposal v2 (17-10-2001)
Kernel API documentation (02-11-2001)
mkgbafs and libgbafs (06-04-2002)
Fivemouse General Public License (08-01-2002)
My Code:
AdiOS Release 1 (28-10-2001)
AdiOS Release 2 (02-11-2001)
PPP Driver (02-11-2001)
GBA Text Routines (18-11-2001)
GBA UART Demo (18-11-2001)
Reference Documents:
Using PICmicro MCUs to Connect to the Internet via PPP
This is a very good document. Well worth a read for anyone thinking of doing something similar.
RFC 791 (Internet Protocol)
RFC 792 (Internet Control Message Protocol)
RFC 793 (Transmission Control Protocol)
RFC 1122 (Requirements for Internet Hosts -- Communication Layers)
RFC 1661 (Point-to-Point Protocol)
RFC 1071 (Computing the Internet Checksum)
Other Links of Interest
Computer Science Specialist Project
KOS
Devkit Advance
If you want to be notified of major changes to the site, subscribe to the mailing list.
I seem to be having problems with Hot Mail requests, so if you don't get an email to confirm your request to join, email me and I will add you manually.
共3条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |