oldban 发表于 2020-8-11 13:43:37

STC有没有可以在XRAM运行代码的51单片机

有些些应用需要在RAM运行代码会比较方便

zengyi703 发表于 2020-8-11 13:52:54

这是51单片机体系结构限制的问题吧

dukelec 发表于 2020-8-11 14:07:19

所以,不到萬不得已,我不再用 51,複雜指令集太複雜了。。。

makesoft 发表于 2020-8-11 14:13:20

可以啊,外扩SRAM,然后用程序和数据指向同一空间。

oldban 发表于 2020-8-11 15:24:24

占用IO太多太麻烦不考虑外扩

motor_control 发表于 2020-8-11 19:26:02

使用silabs的51单片机,keil里用xdata 就可以使用了。用c语言写很舒服。
只要不做比较复杂的电机控制,我宁愿用8位 c8051或16位的dspic,简单直接,特别是ADC。

modbus 发表于 2020-8-11 19:52:40

dukelec 发表于 2020-8-11 14:07
所以,不到萬不得已,我不再用 51,複雜指令集太複雜了。。。

难道还在用汇编

MyAVR 发表于 2020-8-11 20:21:49

我就好奇,这么复杂的应用,怎么不用arm呢?

dukelec 发表于 2020-8-11 20:21:53

modbus 发表于 2020-8-11 19:52
难道还在用汇编

四五年前搞 cc2540/41,整 OTA 整吐了,連接腳本、啟動腳本、內存和 flash 劃分等等,都比 nrf51/52 配 gcc 的版本亂多了。。。

oldban 发表于 2020-8-11 20:49:54

motor_control 发表于 2020-8-11 19:26
使用silabs的51单片机,keil里用xdata 就可以使用了。用c语言写很舒服。
只要不做比较复杂的电机控制,我宁 ...

查了下C8051F020的PDF,好像无XRAM运行代码的说明啊?能给下具体应用说明吗?

nhztb 发表于 2020-8-11 22:49:47

没有这个功能吧?

chenchaoting 发表于 2020-8-11 22:55:32

STC大内存的都是XRAM啊

shiva_shiva 发表于 2020-8-12 09:07:18

不行!!!

XA144F 发表于 2020-8-12 09:58:48

mcs51的构架就决定了一切。
如果你真想搞,只有外扩sram,比如62256,然后用锁存器锁定总线并切换psen信号的电平,然后复位单片机,让单片机把sram当成外部程序存储器来运行。

redroof 发表于 2020-8-12 10:24:36

XA144F 发表于 2020-8-12 09:58
mcs51的构架就决定了一切。
如果你真想搞,只有外扩sram,比如62256,然后用锁存器锁定总线并切换psen信号 ...

如果你可以做一点外部译码逻辑就没任何问题啊。你让PSEN和RD都访问同一片外部RAM就行了。
当年没有高级单片机只有51的年代,玩这种花样的人可多了,哈哈。现在用个高性能的单片机不香吗?

国学芯用 发表于 2020-8-12 10:52:52

等下月 2020/9/15, STC16, 16位 8051 出来, STC16F32K128, XRAM / FLASH 统一编址,解决这个问题,相同时钟频率 比传统 8051 快70倍,如果再算上 32位硬件乘除 单精度浮点运算器,碾压 M0, 横推 M3, 直追 M4

HXDZ-AAA 发表于 2020-8-12 11:07:44

国学芯用 发表于 2020-8-12 10:52
等下月 2020/9/15, STC16, 16位 8051 出来, STC16F32K128, XRAM / FLASH 统一编址,解决这个问题,相同时 ...

哥,我是8051粉,为你的豪言壮语点个大赞,我要为此做一下芯片选型调整哦,真的。

woshigeshuai 发表于 2020-8-12 11:11:56

国学芯用 发表于 2020-8-12 10:52
等下月 2020/9/15, STC16, 16位 8051 出来, STC16F32K128, XRAM / FLASH 统一编址,解决这个问题,相同时 ...

好奇STC芯片是哪家芯片厂生产的,中芯?

小李非刀 发表于 2020-8-12 15:49:17

51的寻址方式,决定了不能在SRAM中运行程序。基本上,8位MCU都不能吧,至少我没用过可以在SRAM中运行程序的8位MCU。

huangqi412 发表于 2020-8-12 16:07:18

RAM中运行代码,是想动态改?那可以考虑上脚本。

liangzai135230 发表于 2020-9-1 16:59:05

国学芯用 发表于 2020-8-12 10:52
等下月 2020/9/15, STC16, 16位 8051 出来, STC16F32K128, XRAM / FLASH 统一编址,解决这个问题,相同时 ...

这个说法太帅了,就差秒掉苹果A8,国人自己用stc做苹果手机

ycheng2004 发表于 2020-9-1 18:12:47

n0831 发表于 2020-9-1 19:13:43

一般哈弗架构的都可以。冯诺依曼的都不行。

WHOOK 发表于 2020-9-21 12:52:17

国学芯用 发表于 2020-8-12 10:52
等下月 2020/9/15, STC16, 16位 8051 出来, STC16F32K128, XRAM / FLASH 统一编址,解决这个问题,相同时 ...

现在16位的出来样品了没有?

小李非刀 发表于 2020-9-21 16:13:48

dukelec 发表于 2020-8-11 14:07
所以,不到萬不得已,我不再用 51,複雜指令集太複雜了。。。

用C语言没感觉的吧?我觉得ARM的汇编指令比51的要多得多,也复杂得多。

dukelec 发表于 2020-9-21 18:08:36

本帖最后由 dukelec 于 2020-9-21 18:40 编辑

小李非刀 发表于 2020-9-21 16:13
用C语言没感觉的吧?我觉得ARM的汇编指令比51的要多得多,也复杂得多。

極少數情況要用 ARM 彙編也是用它簡單版本,複雜版本編譯器自動生成,沒有感覺。
且 RISC 有更簡單的指令集的 MIPS,聽說 RISC-V 也不複雜。

51 寫 c 的話,簡單的應用沒感覺,涉及到大內存、移植別人的庫、IAP 升級等等,會很麻煩,要關注架構本身。
譬如代碼不能 copy 自身到內存運行,不方便擦除自身(譬如 bootloader 自身需要升級的情況)。又譬如,內存地址不連續,連接腳本寫起來很麻煩。
而且 51 沒有好用的免費的跨平台的編譯器,SDCC 之前用不能自動刪除未使用的函數,用別人的庫很麻煩,要手動刪掉未使用的庫函數。
(如果是 RISC,無論是 ARM、MIPS 還是 RISC-V,都可以用 GCC,連接腳本格式什麼的,只需要學習一次,用的時候完全一樣。)

就好比 RISC 類似 Linux 系統,一切皆文件,訪問設備、訪問內存、修改配置等等讀寫文件即可。(RISC 不同的外設映射到統一的地址空間。)
而 51 CISC 類似 Windows 系統,硬盤是 C D E 盤,系統設置又有註冊表,又有各種服務,等等,不統一,做開發很麻煩。

dukelec 发表于 2020-9-21 18:37:20

本帖最后由 dukelec 于 2020-9-21 18:46 编辑

小李非刀 发表于 2020-8-12 15:49
51的寻址方式,决定了不能在SRAM中运行程序。基本上,8位MCU都不能吧,至少我没用过可以在SRAM中运行程序的 ...

STM8 就可以,STM8 雖然是複雜指令集,但它很多特性跟 RISC 很像,譬如,很重要的一點是,FLASH、EEPROM、RAM、外設 等,都是映射到一個連續的 地址 空間。(比不連續的 51 簡單方便很多。)

STM8 想快速擦寫 EEPROM 需要在內存中運行代碼。

xyz543 发表于 2020-9-25 16:27:53

woshigeshuai 发表于 2020-8-12 11:11
好奇STC芯片是哪家芯片厂生产的,中芯?

中芯目前已改单到华邦了。
页: [1]
查看完整版本: STC有没有可以在XRAM运行代码的51单片机