加载中
加载中
表情图片
评为精选
鼓励
加载中...
分享
加载中...
文件下载
加载中...
修改排序
加载中...
74门电路8位计算机KC-LS1u部分资料发布
神之觉醒2015/04/30计算机电子学 IP:广西
KC-LS1uC编译器V1.0.
HTTP服务器源码.
内存和IO定义.
CPU指令说明.
KC-LS1u硬件Protel 99 SE完整工程文件.
KC_LS1u电路图PDF文档.
都打包了,里面的文字说明过后再整理成文档.

attachment icon KC-LS1u资料文件.rar 6.70MB RAR 774次下载

源帖 : https://www.kechuang.org/t/68167
产品帖 : https://www.kechuang.org/t/69505

下面是整机电路预览:
1.LED.png
2.ALU.png
3.A&D.png
4.EPROM.png
5.ROM_CT.png
6.SROM.png 7.RAM.png
8.SPI_C.png
9.SPI_D.png
10.CT&VGA_CS.png
11.VGA_C.png
12.VGA_A.png
13.VGA_D.png
14.CLK_RST_IO_PS.png
来自:计算机科学 / 计算机电子学
108
新版本公告
~~空空如也
神之觉醒 作者
10年2个月前 IP:广西
765968
HTTP服务器测试运行视频:
点击此处查看视频

ping回复1毫秒.
KC-LS1u_ping回复时间.png

单个连接数据传输140+KB/秒, 现在设置为最多20个并发连接, 太多连接会不稳定, 20个并发连接的意思是可以同时最多20台客户机访问KC-LS1u机的内存卡文件.
KC-LS1u_HTTP服务器传输速度.png

C编译器.
KC-LS1uC编译器 V1.0.png

服务器配置 : KC-LS1u + ENC28J60 +TF内存卡.
DSCF4565_调整大小.jpg

服务器配置 : KC-LS1u + ENC28J60 +TF内存卡.
DSCF4567_调整大小.jpg

服务器配置 : KC-LS1u + ENC28J60 +TF内存卡.
DSCF4575_调整大小.jpg

然后丢角落运行.
DSCF4577_调整大小.jpg

放在角落运行, 昨晚死机了一次, 可能被干扰, 然后今天测试大半天没死机,
DSCF4579_调整大小.jpg
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
766036
HTTP服务器程序使用说明:

第1步.连接ENC28J60和内存卡到KC-LS1u.

ENC28J60和内存卡接到 "KC_LS1u_SPI_C" 和 "KC_LS1u_SPI_D" 这两片PCB上;

内存卡是接到J7接口.
内存卡的 "VCC" 接 "3V"
内存卡的 "GND" 接 "GND"
内存卡的 "MISO" 接 "SI"
内存卡的 "MOSI" 接 "SO"
内存卡的 "SCK" 接 "SCK"
内存卡的 "CS" 接 "S_CS0"

ENC28J60是接到J8接口.
ENC28J60的 "VCC" 接 "3V"
ENC28J60的 "GND" 接 "GND"
ENC28J60的 "SO" 接 "SI"
ENC28J60的 "SI" 接 "SO"
ENC28J60的 "SCK" 接 "SCK"
ENC28J60的 "CS" 接 "S_CS1"
ENC28J60的 "RESET" 接 "RST"
ENC28J60的 "INT" 接 "S_INT0"


第2步.把bin文件烧入ROM.
"HTTP服务器_U4.bin" 和 "HTTP服务器_U8.bin" 分别烧入两片27C020;

烧有 "HTTP服务器_U4.bin" 的这片27C020插在 "KC-LS1u_EPROM" 这层PCB的U4位置, 另外一片插U8位置.

文件打包在顶楼了.


第3步.内存卡.
使用4GB以内的TF/SD卡,把内存卡格式化为FAT32文件格式, 然后复制文件进去.
服务器支持文件名称为最多8个字符,后缀名最多为3个字符,比如 "12345678.htm".

服务器支持多级目录和不同后缀名的文件.


第4步.连接网线.
ENC28J60的网口接到路由器或是直接接PC机也可以,  如果直接接PC机要在PC机设置一下.

第5步.开机运行.
按下 "BOOT" 开机运行机器,初始化成功后,"KC-LS1u_SPI_D" 这层PCB的数据灯1秒跳一次.
服务器固定IP地址 : 192.168.1.77
然后在浏览器中输入 "192.168.1.77/12345678.htm"  回车, 浏览器就会打开 "12345678.htm" 文件.

服务器支持20个并发连接.

连接60秒后没反应超时, 意思就是客户机请求一个文件, 客户机一直不选择目录保存, 这时超过60秒之后, 服务器会断开这个客户机的TCP连接.
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
766037
引用 smith:
卧槽,现在支持HTTP协议栈了,厉害,顶一个。
以太网是通过EMAC来访问的吗?
这里服务器的ENC28J60以太网控制器的网口是接路由器.
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
766038
引用 张静茹:
好萌哦 ping忘记打,赶紧吃了口芝麻糊压压惊
................................................................................................
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
766039
引用 solaris:
这机器可以执行EXE文件?这样的话,可以写一个兼容Windows软件的操作系统,至少在办公和网络通讯先做起来,游戏兼容慢慢再做。
[s:;P]暂时没有这么高级, 用来玩玩还可以
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
766042
引用 solaris:
可以尝试做个控制台版的word和telnet,类似DOS时代的WPS办公软件。龙少真是太给力了,做这CPU看了那些值得阅读的书籍,可以推荐一下吗?
嗯~在陆续弄程序运行..  只看过<<数字逻辑>>和<<微机原理及接口技术>> 还有懂点编程就可以啦,  我觉得前提是要有电路知识和实践经验, 还有YY能力, 这个几句话是搞不定的。。。我已经玩电路10几年啦= =, 要是把我大脑的数据直接传输给你就方便了, 文字表达和语言表达效率太低, 过阵子再详细介绍KC-LS1u机的各部件, 重点说明这个CPU的原理, 你可以参考参考...然后发挥你的想象修改或是增加部件实现功能神魔的...
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
766046
引用 solaris:
可以尝试做个控制台版的word和telnet,类似DOS时代的WPS办公软件。龙少真是太给力了,做这CPU看了那些值得阅读的书籍,可以推荐一下吗?
其实只要学习理解数字电路,与或非与非或非异或同或这些门电路, 还有触发器, 译码器, 传输门, 计数器, 移位器,  还有二进制的运算规则, CPU原理, 还有点编程经验,就不难理解程序在电路上是怎么运行的, 还有编译器原理。。不用学的, 就是把高级语言拆分成很多小的程序步骤,这些步骤就是CPU指令啦.
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
766050
引用 solaris:
好的。计算机原理都把我弄晕了,正在读大学。
搞到现在才发现。。CPU原理真的很简单, 你觉得难的是。。现在很多大学不教本质,而教人家定义的东西...  然后让你学, 人家定义的一堆东西你当然觉得难, 后面你的第一印象就是别人的结构。。 如果理解了本质,你可以随便设计结构.
引用
评论
1
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
766052
引用 solaris:
编译原理不用学?那是怎么确定每个指令定义?每次看例程那些使用0X5C????之类的,都搞不清楚这是怎样得来的数据。
指令的操作大同小异, 都是数据传送,运算, 然后结果送回什么寄存器/内存.
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
766054
引用 solaris:
编译原理不用学?那是怎么确定每个指令定义?每次看例程那些使用0X5C????之类的,都搞不清楚这是怎样得来的数据。
ARM的数据传送指令貌似还有批量传送功能。。 作用是加速
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
766056
引用 solaris:
编译原理不用学?那是怎么确定每个指令定义?每次看例程那些使用0X5C????之类的,都搞不清楚这是怎样得来的数据。

CPU的指令功能真的都差不多, 不同的是执行速度.
假如有10条传送指令, 往10个不同的寄存器传送数据, 一般CPU是一条条执行, 假如是单周期的CPU那么执行这10条传送指令就需要10个时钟脉冲;
但是高级CPU执行指令不是一条条执行,如果这10条传送指令不互相干扰, 这个CPU只需一个时钟脉冲, 就可以把10条指令都咔嚓.
有些CPU一条指令就能执行复杂运算.
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
766058
引用 solaris:
受教了。有些时候,我思考到底计算机是怎样运作的,硬件的运算方式是什么,一问老师,他回答是别钻牛角尖,人家已经研究出来的东西,自己再钻进去,浪费时间和精力,站在巨人的肩膀上才会最快受益。呃!
数字电路,微机原理,数字逻辑,这三个内容,我得好好...
如果是搞产品赶时间就不用理解底层本质,只要理解怎么用就行,这样开发速度快,效率高,  对底层原理有兴趣再研究, 做自己感兴趣的事~  只要感兴趣,然后努力搞明白, 你就可以拥有这个知识.
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
766060
引用 solaris:
受教了。有些时候,我思考到底计算机是怎样运作的,硬件的运算方式是什么,一问老师,他回答是别钻牛角尖,人家已经研究出来的东西,自己再钻进去,浪费时间和精力,站在巨人的肩膀上才会最快受益。呃!
数字电路,微机原理,数字逻辑,这三个内容,我得好好...
人类思考问题都是符合逻辑, 都是为了解决问题而思考, 你先按照你的理解推导出解决问题的方法, 后面你会发现你的方法和其他人的方法差不多一样..  如果等着别人的推导结果而不思考,那永远不会有进步, 不过这样可以节省脑细胞~~~
引用
评论
1
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
766061
引用 solaris:
这么多回复,顿感自己的知识面太小,我对不上话了,想找个方向和入口深入研究硬件。龙少分享一下这个CPU的设计心得,希望能继续写更多的内,好想看。
嗯 我觉得应该要写个原理,怎么写才能让大多数人容易理解, 你有自己的思维。参考一下就可以 ,额 不要被我误导===~~- -\ \
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
766103
昨晚到现在运行了超过12个小时。。没死鸡!!!!!!!!!!!!!!!!!!!!!。。 正在想弄点什么好玩的程序上去运行[s:;P]!!!!
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
766104
引用 solaris:
这么多回复,顿感自己的知识面太小,我对不上话了,想找个方向和入口深入研究硬件。龙少分享一下这个CPU的设计心得,希望能继续写更多的内,好想看。
OK吃饱饭了,我现在讲讲搞这个机器的心得。。。==看看从哪里开始讲
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
766140
引用 solaris:
这么多回复,顿感自己的知识面太小,我对不上话了,想找个方向和入口深入研究硬件。龙少分享一下这个CPU的设计心得,希望能继续写更多的内,好想看。
改天再讲~ 刚才弄东西了
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
766145
引用 ry7740kptv:
我可以说:直接壕炸了!都打的PCB。。以为洞洞的,这一套下来不少钱了啊!!!功耗怎么样?可以当暖手炉了吧?。。。
另:表示最近在洞洞Apple I,还没弄完~
一套成本XXX, 功耗10瓦以下这样子吧,,电压5V,之前测过一次电流1安左右,现在摸上去有点暖手))
Apple I~~小心洞洞板焊糊[s:;P]
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
766147
引用 金坷居士:
顶一个~这个真需要毅力~
看着样子已经做出了一个功能健全的8位机了呢~
在一堆74门电路上运行程序感觉好爽..
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
766148
引用 cccyl:
你不是还要弄一个开机启动程序吗?看好你哦
对。 要搞个叼炸天的开启程序~
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
766482
引用 refinder:
大赞一个。楼主终于放弃民科重出江湖了!
WO SHI  JIAO TA LIANG TIAO CHUAN DE Y_DGR10A)ZW93U{9LL79HQ5.gif Y_DGR10A)ZW93U{9LL79HQ5.gif Y_DGR10A)ZW93U{9LL79HQ5.gif
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
766483
已经想出三角函数高速算法...   搞程序里面一运行肯定把你们直接亮瞎 {Q5`(7IIXE2}0FPILSX)_NQ.png       看看这部机器的xing功能爆发起来有多强大 `B9BRIFH)]$JE68IFUN`K}H.gif
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
766860
引用 cccyl:
感觉这个u的架构还有可以改进的地方,如果能用上自己设计的高性能ALU就更屌了

没错...要搞个专门加速3D运算的~~!!!
KC-LS1U_3D测试:

attachment icon 3D测试.rar 324.99KB RAR 69次下载
运行视频 :  https://www.kechuang.org/t/71394
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
767317
刚忙完, 发点去年设计时候画的草稿图,, 有些地方不一定是实际情况..

DSCF4230_调整大小.jpg
DSCF4231_调整大小.jpg
DSCF4232_调整大小.jpg
DSCF4233_调整大小.jpg
DSCF4234_调整大小.jpg
DSCF4235_调整大小.jpg
DSCF4236_调整大小.jpg
DSCF4237_调整大小.jpg
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
767318
DSCF4238_调整大小.jpg
DSCF4239_调整大小.jpg
DSCF4240_调整大小.jpg
DSCF4241_调整大小.jpg
DSCF4242_调整大小.jpg
DSCF4243_调整大小.jpg
DSCF4244_调整大小.jpg
DSCF4245_调整大小.jpg

DSCF4247_调整大小.jpg
DSCF4248_调整大小.jpg
DSCF4249_调整大小.jpg
DSCF4250_调整大小.jpg
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
768782
引用 分立元件:
龙少太厉害了,我才刚刚学汇编语言,
还可以~   慢慢来,,,!!
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
768784
引用 rpg-7:
我最近看到一个还不错的公开课,From Nand to Tetris,http://www.nand2tetris.org ,这是他们的官方站点,https://class.coursera.org/nand2tetris1-001 公开课...
看了一下视频,貌似挺不错的!,学习学习.. 不过我英国老鼠不过关[s::dizzy:]额
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
768786
引用 井蛙:
啥时候出新套件???
开机程序已经搞定,改天发布开机程序, 有了开机程序就很爽了..  只要把编译器编译出的二进制文件放到内存卡,然后插上, 就会启动指定路径的二进制文件, 支持ASCII字符的长文件名, 可以设定文件路径, 然后开机就会把放在内存卡的二进制文件装载进内存运行,,, 下一批准备出!,然后再弄个小操作系统[s:;P]
@yinshentao
[b]@辣椒酱爱折腾[/b]
[b]@gb505329191[/b]
http://www.tudou.com/programs/view/3e9qRY63SZU/
点击此处查看视频

DSCF4662_调整大小.jpg

DSCF4665_调整大小.jpg

DSCF4709_调整大小.jpg

DSCF4700_调整大小.jpg
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 修改于 10年2个月前 IP:广西
768997
引用 cccyl:
哈哈,这个不错!玩出水平了,够牛逼!


KC-LS1u开机启动程序源码和ROM文件.
V1.0版本(不建议使用):

attachment icon KC-LS1u开机启动程序.rar 399.37KB RAR 83次下载
V1.1版本(可以不插4片VGA):

attachment icon KC-LS1u开机启动程序V1.1.rar 399.81KB RAR 96次下载


把开机启动程序ROM二进制文件烧到27c020, 然后装上... 从此就可以告别烧写器/编程器了~


开机启动程序说明:
开机启动程序的作用是-->在上电之后自动从外部存储器(TF/SD内存卡)加载程序数据到内存, 然后执行这个加载进来的程序;

1. 在内存卡根目录新建两个txt文本, "KC_LS1u_boot_0.txt"  和 "KC_LS1u_boot_1.txt" , 内存卡文件系统格式为FAT32;
2. 编辑 "KC_LS1u_boot_0.txt" 这个引导文本, 文本存放的是程序文件的路径, 路径格式为, 设备名称:文件路径,  比如, spi_device0:ROM.bin,  spi_device0的意思是选择SPI设备0(硬件SPI控制器上面有8根片选信号线, 接"S_CS0" 片选信号的设备会被选中),  ROM.bin就是根目录下的ROM.bin二进制程序文件;

3. 插上内存卡, 通电开机, 这时机器会把 "ROM.bin" 这个文件加载到内存里面并运行;


1.png

在这里, SPI设备0(spi_device0:)  和 SPI设备1(spi_device1:) 作为开机引导的对象,也就是可以接两张内存卡, 两张内存卡的片选信号(CS)分别接硬件SPI控制器的 "S_CS0" 片选信号 和 "S_CS1" 片选信号;

txt引导文本的路径可以写成如下几种格式,文件名称或文件夹名称可以有空格,但是路径前后不能有空格或换行.
spi_device0:ROM.bin         指定从SPI设备0加载根目录的程序文件

spi_device1:ROM.bin         指定从SPI设备1加载根目录的程序文件

spi_device_:ROM.bin         机器会从当前设备加载根目录的程序文件

spi_device0:xx\xxx\xxx\xsads\xs\6768678\67867867fdg\ad\ROM.bin    指定从SPI设备0加载指定目录的程序文件

spi_device1:xx\xxx\xxx\xsads\xs\6768678\67867867fdg\ad\ROM.bin    指定从SPI设备1加载指定目录的程序文件

spi_device_:xx\xxx\xxx\xsads\xs\6768678\67867867fdg\ad\ROM.bin    机器会从当前设备加载指定目录的程序文件


在有两张内存卡的情况下,开机的时候机器会先搜索SPI设备0根目录下的txt引导文本,如果没有找到文本,这时会搜索SPI设备1, 如果SPI设备1的txt引导文本里面路径指定的是SPI设备0(spi_device0:), 那么机器会从SPI设备0搜索程序文件, 也就是引导文本在SPI设备1,程序文件在SPI设备0;
如果txt引导文本里的设备名称写成 "spi_device_:" , 这时机器只会搜索存放这个引导文本的设备, 也就是引导文本在SPI设备0, 机器就在SPI设备0搜索程序文件, 文本在SPI设备1,机器就在SPI设备1搜索程序文件;

注意: 引导文本内容的大小不能超过512字节  


"KC_LS1u_boot_0.txt" 是作为开机时候的引导文本, 那 "KC_LS1u_boot_1.txt" 是干嘛用的~, 是给操作系统启动程序用的,  那么怎么控制呢..
内存地址C00007H是一个系统控制寄存器, 上电复位的时候会全部清0, 注意有两个空出来的"用户位";
bit0的这个用户位是控制开机画面的,  运行开机程序的时候, 程序会判断这个位, 如果为0, 就会出现外星人开机画面, 如果为1, 就不会出现外星人开机画面;
bit4这个用户位是控制txt引导文本的,  当开机程序执行到搜索txt引导文本这一步的时候, 会判断这个位, 如果为0, 就搜索 "KC_LS1u_boot_0.txt",  如果为1, 则搜索 "KC_LS1u_boot_1.txt" ;
2.png


顶楼资料有介绍, 本机有两组ROM, 分别为EPROM和SROM(由SRAM芯片组成), ROM就是装程序(机器码)的麻..
EPROM这组ROM里面的程序是按下开机键的时候, 立刻就运行的, 开机程序就装在这组ROM里面;
SROM这组ROM要先装程序进去, 装完了之后, 再通过硬件切换机制, 让CPU跳到SROM, 执行SROM里面的程序,  当然, CPU也可以跳回EPROM, 执行EPROM里的程序, 那么问题就来了, EPROM装的是外星人开机程序, 跳回去有什么用呢,  ~ -_,- ~ 这个是我觉得设计得比较得意的地方~~~,  由于在SROM里面运行的用户程序是不能读写SROM的, 只有在EPROM运行的程序才可以访问SROM,  那么, 如果现在SROM里面运行的程序想从外部存储器加载一个程序进来运行怎么办呢,
可以这样做,
第1步,修改SPI设备0内存卡的 "KC_LS1u_boot_1.txt" 引导文本, 把这个文本的路径修改为需要启动运行的程序文件的路径;
第2步,往内存地址C00007H这个系统控制寄存器写入0x11, 这时两个用户位都被置1;
第3步,执行 "rom_run;" 语句, 这时CPU会跳到EPROM里面执行程序, 由于bit0和bit4两个用户位被置1, EPROM里面的开机程序将不执行外星人开机画面, 而直接执行 "SROM数据装载服务程序" , 这时程序会搜索 "KC_LS1u_boot_1.txt" 引导文本, 然后按照路径把目标程序文件装载到SROM, 然后运行;
经过上面3个步骤, 已经达到了用户程序加载程序运行的目的;
3.png


假设EPROM和SROM都装有下图所示的程序,将会出现什么现象呢,结果就是CPU在EPROM里面执行到 "rom_run;" 的时候会跳到SROM执行程序,然后CPU在SROM执行到 "rom_run;" 的时候,又会跳回EPROM执行"rom_run;"  然后又跳到SROM执行"rom_run;" 。。。。。。死循环, 切来切去。。
4.png
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
769027
引用 飘飘飘:
俺的套件呢???什么时候开卖??
准备了。。。~  弄完点点东西就开卖
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
769150
引用 strange:
如果用门电路弄一个存储器就更好了
.......  额, 确实可以, 开关阵列做指令存储器, 锁存器阵列做SRAM, 这样的话只有欣赏价值了,  我现在这样搞既有欣赏价值也有使用价值...
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
769153
49楼更新了开机启动程序, 可以不插VGA, 下面是不插VGA显卡的情况下, 只有9层PCB硬件系统的测试, 运行HTTP服务器, 服务器的程序文件是放在内存卡里面的;
http://www.tudou.com/programs/view/14QrvTI8C9I/
点击此处查看视频

DSCF4734_调整大小.jpg
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
769303
引用 strange:
有一个想法!
中文指令集!
其实... 指令集搞成什么文都可以的, 只是二进制机器码的代号, 比如传送指令,英文是"MOV A,90H", 表达式是"A = 0x90",  中文是 "90H送A寄存器;" , 如果你想搞得再中文一点可以把寄存器的名称弄成甲寄存器乙寄存器...然后中文指令就是"十六进制九零送甲寄存器"..= =
为了编程方便, 还是用比较好记的符号为好,瞄一眼0.1秒内大脑马上识别...   要不要搞个文言文的机器码翻译器.. 这样效率应该很高, 文言文的特点就是大量数据信息都被压缩在几个中文内,  然后解压缩出来一堆中文(译文)...=  =
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
769307
KC-LS1u实验1, 往CPU的A寄存器写入一个数值:

新建一个文件夹, 把 "KC-LS1uC编译器.exe" ,复制进来, 再新建一个txt文本, 改名为main.c
1.png


运行"KC-LS1uC编译器.exe", 点击"打开"按钮
2.png


... 写入一段代码, 下面的"_A" 就是CPU的A寄存器, 然后点编译
3.png


编译完成之后目录下会生成bin二进制机器码程序文件
4.png


在这里我们使用"ROM.bin",  把这个文件发送(复制)到内存卡上面

5.png


注意内存卡txt引导文本的路径
6.png

然后把内存卡插到机器外接的内存卡座上面
7.png


开机运行...等开机画面过了之后, 程序被加载到内存里面并运行, 这时可以看到A寄存器的数据指示灯显示0x55(二进制01010101)
8.png
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
769488
引用 cccyl:
既然大家都是买来玩(学习)的,能不能改一下编译器,让它编译的时候生成一个汇编代码的文件,这样能更好地了解程序的运行
对., 之前确实是这样设计的,然后忘记了,,  改天弄,,  V1.1版
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
769494
引用 cccyl:
不急,慢慢来,就怕你工作量太大兼顾不来
..现在我想造部超级计算机~  不过先把手头工作搞定..  慢慢酝酿^^^
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 修改于 10年2个月前 IP:广西
769506
引用 cccyl:
今天翻资料找到一个电源供电管理电路,感觉不错,希望能改进现有的电源管理电路
嗯.. 弄个PWM程序调压的更爽.[s:;P]  现在的话也是兼顾手动模式下..  如果是工业机肯定不是这么搞,   还有现在电脑主板上都没有保险丝.. 所以我也没弄保险上去~   现在配的那个3A的电源适配器超过电流就会保护的..
要实现按3秒才关机也是可以 需要增加电容延时电路,, 接通开关再放开的时候马上接通一个三极管给按键的信号线接通一个电容,  再按下去的时候, 电容充够电才达到触发点平,实现延时关机..

现在这里也可以实现程序关机, 只需要往C00007H内存地址单元那个系统控制寄存器的最高位写入1, 整机的电源就会关闭, 那时设计的时候没考虑到这么多,,没弄到程序检测电源按键的线路, 确实值得改进
程序关机位.png
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
769518
引用 cccyl:
洗完澡精神爽!给你的编译器提几个建议吧
1、把源代码和编译器的输出文件分别放到两个文件夹里,现在的太乱了
2、像别的编译器那样,弄一个包含工程里所有源码文件信息(比如说文件名啊,路径啊)的工程文件,用编译器打开该文件就自动加载代码,因为现在...
嗯, 3Q你的建议,  这个文件加载和管理的程序偷懒没弄~  暂时只搞了翻译程序..
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
769647
引用 cccyl:
既然大家都是买来玩(学习)的,能不能改一下编译器,让它编译的时候生成一个汇编代码的文件,这样能更好地了解程序的运行


正常编译请使用V1.0版,不要使用这个版本,这个V1.1版是用来研究程序代码的,建议调试20K以内的程序,超过30K就要等很久。。。

attachment icon KC-LS1uC编译器V1.1.rar 311.10KB RAR 62次下载
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
769649
引用 cccyl:
对了,这个u没硬件I2C、uart吗?要是用软件模拟的话,感觉效率很低而且很麻烦啊
可以在外部连接,IIC总线速率低,完全可以软件模拟, 以太网控制器可以用ENC28J60(SPI接口)、USB控制器可以用CH375(8080并口),USB又可以转UART串口,,
这里只设计了硬件SPI控制器和8080并口这两个重要的接口,其他接口可以在这两个接口上扩展, 如果都做上去,成本也上去
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
769766
引用 cccyl:
速度啊,更新得好快!要是这样不如弄个像反汇编工具那样的东西,直接查看生成的bin文件,这样可以吗?
可以~  不过这个工具暂时没 "排队" , 就是暂时没加入这个项目中, 现在先做好玩的东西~~~  突然发现昨天那个V1.1有个BUG, 已经修复,,,,

attachment icon KC-LS1uC编译器V1.1.rar 311.11KB RAR 52次下载
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
769768
引用 not_at_all:
的确,到时还加上鼠标键盘USB接口之类的,估计要变成“超级计算机”了。可能要重新设计整个架构才行
到时弄好程序, 可以接键盘鼠标来用..--> 敬请期待
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
770003
引用 cccyl:
或者等我研究透了,自己写一个也可以,感谢你的无私奉献
多谢支持[s::kiss:]
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
770005
引用 rpg-7:
嗯。。键盘鼠标个人建议可以直接公用串口,用单片机管理,直接读出鼠标移动的向量和键盘的击键,貌似比较节约资源
目前这个问题解决.. 在想小操作系统的框架,, 额 想的问题比较多
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年2个月前 IP:广西
770028
引用 rpg-7:
嗯。。键盘鼠标个人建议可以直接公用串口,用单片机管理,直接读出鼠标移动的向量和键盘的击键,貌似比较节约资源
其实我是用CH375芯片来作为USB接口的, CH375还有这个东西...   到时研究一下
CH375.jpg
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年1个月前 IP:广西
770856
引用 cccyl:
KC-LS1u反汇编器发布
这几天头脑发热,用我渣渣的编程水平写了个反汇编器来研究程序的运行。

用法:
打开程序,选择编译出来的ROM.bin文件(注意,只支持ROM.bin文件,不要选其他的bin文件!),然后填写好保存汇编代码文件的路...
!!!真心非常感谢!!!  不过这个V1.0的编译器代码优化不是非常非常好...
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年1个月前 IP:广西
770867
引用 cccyl:
KC-LS1u反汇编器发布
这几天头脑发热,用我渣渣的编程水平写了个反汇编器来研究程序的运行。

用法:
打开程序,选择编译出来的ROM.bin文件(注意,只支持ROM.bin文件,不要选其他的bin文件!),然后填写好保存汇编代码文件的路...
还有这个地方没有优化到, 在这里16位或32位的乘法除法取余之类的运算超过2次以上的话最好弄成函数,可以节省代码量, 大概像下面这样的形式:

long int MUL_32(a,b)
{
     return a*b;
}

main()
{
     long int a,b,c,d,e,f;

     c = MUL_32(a,b);
     f = MUL_32(d,e);

}
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年1个月前 IP:广西
770928
引用 cccyl:
反汇编器v0.2已优化,原先反汇编HTTP服务器rom.bin要48秒,现在只要9秒!!!而且修复了运行错误的问题。界面和用法不变,效率更高!
此版bug:进度条与实际进度有一点误差,仅供参考!
!!!!= =!  速度爆表!!!  下来玩玩先
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年1个月前 IP:广西
771715
这个是可以从内存卡加载启动的刷图程序:

attachment icon 刷图程序.rar 0.73KB RAR 51次下载
刷图用的二进制文件制作参看这里的168楼:https://www.kechuang.org/t/69505&page=3
刷图读地址的修改参看这里的163楼:https://www.kechuang.org/t/69505&page=3
注意:  由于这个刷图程序没有使用文件系统, 所以内存卡最好不要有太多零散文件,否则可能会造成数据不连续
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
10年1个月前 IP:广西
772538
引用 rpg-7:
顺便问句啊,如果这个计算机要搞定中断的话,可以靠锁存保存程序计数器的状态/切换寄存器实现吗?直接外挂一块板子。。。感觉各种没中断不舒服斯基。。。。上中断/计时器直接跑多任务爽。。
这个计算机设计初衷是以比较少的硬件实现比较强的功能,这个CPU开始就不打算做中断上去,但是非定时器中断调度的多任务可以实现[s:;P] 在弄住程序。。程序写好一运行你就明白了,敬请关注~

对,,,如果你要跟我订制一个带中断实现多任务的CPU也可以有偿帮你做[s:;P]~~~~~~~~~~~

其实我有自己的一套方案,现在硬件条件富裕的情况下看那些以往架构的CPU,完全可以不用那样搞,,


附上一个测试USB键盘的视频:
http://www.tudou.com/programs/view/-psZCt6mmsY/
点击此处查看视频
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
神之觉醒
学者 机友 笔友
文章
71
回复
1163
学术分
4
2011/08/12注册,2年5个月前活动
暂无简介
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的