打印
[51单片机]

定制化的8051怎么用编译器?

[复制链接]
2712|25
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
forrest11|  楼主 | 2017-1-23 16:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
mcu5i51| | 2017-1-23 17:17 | 只看该作者
只要是8051的编译器就行,头文件根据你的核改写

使用特权

评论回复
板凳
forrest11|  楼主 | 2017-1-23 17:51 | 只看该作者
mcu5i51 发表于 2017-1-23 17:17
只要是8051的编译器就行,头文件根据你的核改写

那怎么选芯片呢?比如我的Flash是48k,ram是12k。这只是举一个例子。
我现在的flash是设置为16k,ram是2k。

使用特权

评论回复
地板
autopccopy| | 2017-1-23 19:06 | 只看该作者
包含头文件reg52.h, 其余自己的定义特殊寄存器即可。:)

使用特权

评论回复
5
dirtwillfly| | 2017-1-23 22:43 | 只看该作者

使用特权

评论回复
6
forrest11|  楼主 | 2017-1-23 23:23 | 只看该作者
autopccopy 发表于 2017-1-23 19:06
包含头文件reg52.h, 其余自己的定义特殊寄存器即可。:)

头文件只定义了各操作寄存器的地址,和bit位的别名写法。这些我都不会改动,扩展的寄存器我写了编译器也不会编译,等于没有用。
你没有回答我提的问题。

使用特权

评论回复
7
Ketose| | 2017-1-23 23:47 | 只看该作者
forrest11 发表于 2017-1-23 23:23
头文件只定义了各操作寄存器的地址,和bit位的别名写法。这些我都不会改动,扩展的寄存器我写了编译器也 ...

你没有试,你怎么知道编译器不会编译呢?
这和编译器没关系。和你的定制MCU有关系。

使用特权

评论回复
8
forrest11|  楼主 | 2017-1-24 10:33 | 只看该作者
Ketose 发表于 2017-1-23 23:47
你没有试,你怎么知道编译器不会编译呢?
这和编译器没关系。和你的定制MCU有关系。 ...

不是不会编译,我现在问的是怎么选芯片。芯片都不知道怎么选,怎么去编译呢?

使用特权

评论回复
9
forrest11|  楼主 | 2017-1-24 10:38 | 只看该作者
Ketose 发表于 2017-1-23 23:47
你没有试,你怎么知道编译器不会编译呢?
这和编译器没关系。和你的定制MCU有关系。 ...

我说的是我的操作寄存器地址本来就和标准的一样不需要改变,自己设计的扩展寄存器设计了也没有用,不会被编译进去(如CRC电路),所以干脆不设计这样的扩展寄存器。
问题是我的Flash,SRAM大小由于成本原因,需要定制,如16kflash,2K ram或20kflash,3kram。这种情况,我不知道怎么配置,或怎么选芯片。
请会者帮忙。

使用特权

评论回复
10
ayb_ice| | 2017-1-24 14:40 | 只看该作者
选个最接近的芯片,修改下配置选项就可以了

使用特权

评论回复
11
forrest11|  楼主 | 2017-1-24 15:57 | 只看该作者
ayb_ice 发表于 2017-1-24 14:40
选个最接近的芯片,修改下配置选项就可以了

懂了,谢谢!
配置文件我自己找一下。

使用特权

评论回复
12
chunyang| | 2017-1-31 16:51 | 只看该作者
任何MCS51编译器都可以用,无论汇编、PL/M还是C,自己写个头文件就是。不会写,打开任何一个参考一下即可,无非是一些地址、寄存器的定义而已。

使用特权

评论回复
13
chunyang| | 2017-1-31 16:52 | 只看该作者
forrest11 发表于 2017-1-23 23:23
头文件只定义了各操作寄存器的地址,和bit位的别名写法。这些我都不会改动,扩展的寄存器我写了编译器也 ...

扩展的资源,你定义了就会编译。

使用特权

评论回复
14
chunyang| | 2017-1-31 16:55 | 只看该作者
forrest11 发表于 2017-1-24 10:38
我说的是我的操作寄存器地址本来就和标准的一样不需要改变,自己设计的扩展寄存器设计了也没有用,不会被 ...

程序存储器和数据存储器的大小不必关心,使用时地址别越限即可。51默认最大64K Byte的程序存储器和数据存储器,超出的话需要硬件电路(可以是芯片内或芯片外)的配合(一般用页切换法),仍然使用常规指令即可实现。

使用特权

评论回复
15
forrest11|  楼主 | 2017-2-4 12:06 | 只看该作者
chunyang 发表于 2017-1-31 16:55
程序存储器和数据存储器的大小不必关心,使用时地址别越限即可。51默认最大64K Byte的程序存储器和数据存 ...

收到,谢谢!

使用特权

评论回复
16
linqing171| | 2017-2-4 17:31 | 只看该作者
定制过两个51核的soc不过都是几年前了。这两年因为行业变了,配合我们做SOC的合作方都用国产核了。
如果keil芯片列表里有卖给你ip的,你就选那个,要是没有就随便选。
头文件自己写,芯片随便选一个。reg52.h也可以。 你的外设寄存器应该是放xdata上吧,别忘了假设volatile,别让keil给你优化去了。
8051的调试只能上ISD51了。从2005年第一次用TUSB3410的时候就喜欢上了这个rom monitor。(如果你内置比较便宜的振荡器的话,需要自己想办法解决执行特定函数的时候温度和电压导致的串口波特率漂移,都是雕虫小技)。
如果是PIC核的话我自己还做过一个仿真器和调试软件,MPLAB的界面实在太难用了。包括JTAG通过bsdl控制寄存器什么的,去网上找找代码,自己移植一下都不是难事,做过一次就都顺了。你只有自己做过一次调试软件,才知道为什么优化等级高的时候会乱跳,为什么汇编对不上源代码行数,为什么执行到返回还能把下个函数也可能执行了等等调试器的常见现象的由来。

另外,核能买还是买吧,没有多少钱,你可以看看 evatronix.pl 还能不能打开。51的流水线复杂,特别JBC (Jump if bit set then clear bit) DJNZ (decrease and save Jump if not Zero)  ... ...

使用特权

评论回复
17
forrest11|  楼主 | 2017-2-4 17:41 | 只看该作者
linqing171 发表于 2017-2-4 17:31
定制过两个51核的soc不过都是几年前了。这两年因为行业变了,配合我们做SOC的合作方都用国产核了。
如果kei ...

还请指点。为什么用国产核?要钱吗?用国产核相比51有什么优势?

使用特权

评论回复
18
linqing171| | 2017-2-4 17:59 | 只看该作者
forrest11 发表于 2017-2-4 17:41
还请指点。为什么用国产核?要钱吗?用国产核相比51有什么优势?

行业不同啊。都是要钱的。即使不要钱的也要用大公司的免费阉割版,速率留点余地。

使用特权

评论回复
19
forrest11|  楼主 | 2017-2-4 18:06 | 只看该作者
linqing171 发表于 2017-2-4 17:59
行业不同啊。都是要钱的。即使不要钱的也要用大公司的免费阉割版,速率留点余地。 ...

也就是说新的核比起51,处理速度明显提高了是吧。

使用特权

评论回复
20
linqing171| | 2017-2-4 18:15 | 只看该作者
forrest11 发表于 2017-2-4 18:06
也就是说新的核比起51,处理速度明显提高了是吧。

有些项目不能用外国的东西,所以还国产了。行业就这样。
我说的是别跑太快了,数字电路的bug往往是在时钟的速度太快上。工艺余量。

处理速度不见得比51高,特别不做数**算,仅仅逻辑运算的时候,代码密度肯定比51差。你想想51长短不一的指令用其它宽度相等的指令来做,怎么可能一样的密度呢?
具体的代码密度我有很多测试用例。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:个人博客:http://blog.**/forrest11

37

主题

1093

帖子

14

粉丝