STC有没有可以在XRAM运行代码的51单片机
有些些应用需要在RAM运行代码会比较方便 这是51单片机体系结构限制的问题吧 所以,不到萬不得已,我不再用 51,複雜指令集太複雜了。。。 可以啊,外扩SRAM,然后用程序和数据指向同一空间。 占用IO太多太麻烦不考虑外扩 使用silabs的51单片机,keil里用xdata 就可以使用了。用c语言写很舒服。只要不做比较复杂的电机控制,我宁愿用8位 c8051或16位的dspic,简单直接,特别是ADC。
dukelec 发表于 2020-8-11 14:07
所以,不到萬不得已,我不再用 51,複雜指令集太複雜了。。。
难道还在用汇编 我就好奇,这么复杂的应用,怎么不用arm呢?
modbus 发表于 2020-8-11 19:52
难道还在用汇编
四五年前搞 cc2540/41,整 OTA 整吐了,連接腳本、啟動腳本、內存和 flash 劃分等等,都比 nrf51/52 配 gcc 的版本亂多了。。。 motor_control 发表于 2020-8-11 19:26
使用silabs的51单片机,keil里用xdata 就可以使用了。用c语言写很舒服。
只要不做比较复杂的电机控制,我宁 ...
查了下C8051F020的PDF,好像无XRAM运行代码的说明啊?能给下具体应用说明吗? 没有这个功能吧? STC大内存的都是XRAM啊 不行!!! mcs51的构架就决定了一切。
如果你真想搞,只有外扩sram,比如62256,然后用锁存器锁定总线并切换psen信号的电平,然后复位单片机,让单片机把sram当成外部程序存储器来运行。 XA144F 发表于 2020-8-12 09:58
mcs51的构架就决定了一切。
如果你真想搞,只有外扩sram,比如62256,然后用锁存器锁定总线并切换psen信号 ...
如果你可以做一点外部译码逻辑就没任何问题啊。你让PSEN和RD都访问同一片外部RAM就行了。
当年没有高级单片机只有51的年代,玩这种花样的人可多了,哈哈。现在用个高性能的单片机不香吗? 等下月 2020/9/15, STC16, 16位 8051 出来, STC16F32K128, XRAM / FLASH 统一编址,解决这个问题,相同时钟频率 比传统 8051 快70倍,如果再算上 32位硬件乘除 单精度浮点运算器,碾压 M0, 横推 M3, 直追 M4 国学芯用 发表于 2020-8-12 10:52
等下月 2020/9/15, STC16, 16位 8051 出来, STC16F32K128, XRAM / FLASH 统一编址,解决这个问题,相同时 ...
哥,我是8051粉,为你的豪言壮语点个大赞,我要为此做一下芯片选型调整哦,真的。 国学芯用 发表于 2020-8-12 10:52
等下月 2020/9/15, STC16, 16位 8051 出来, STC16F32K128, XRAM / FLASH 统一编址,解决这个问题,相同时 ...
好奇STC芯片是哪家芯片厂生产的,中芯? 51的寻址方式,决定了不能在SRAM中运行程序。基本上,8位MCU都不能吧,至少我没用过可以在SRAM中运行程序的8位MCU。 RAM中运行代码,是想动态改?那可以考虑上脚本。 国学芯用 发表于 2020-8-12 10:52
等下月 2020/9/15, STC16, 16位 8051 出来, STC16F32K128, XRAM / FLASH 统一编址,解决这个问题,相同时 ...
这个说法太帅了,就差秒掉苹果A8,国人自己用stc做苹果手机 一般哈弗架构的都可以。冯诺依曼的都不行。 国学芯用 发表于 2020-8-12 10:52
等下月 2020/9/15, STC16, 16位 8051 出来, STC16F32K128, XRAM / FLASH 统一编址,解决这个问题,相同时 ...
现在16位的出来样品了没有? dukelec 发表于 2020-8-11 14:07
所以,不到萬不得已,我不再用 51,複雜指令集太複雜了。。。
用C语言没感觉的吧?我觉得ARM的汇编指令比51的要多得多,也复杂得多。 本帖最后由 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:46 编辑
小李非刀 发表于 2020-8-12 15:49
51的寻址方式,决定了不能在SRAM中运行程序。基本上,8位MCU都不能吧,至少我没用过可以在SRAM中运行程序的 ...
STM8 就可以,STM8 雖然是複雜指令集,但它很多特性跟 RISC 很像,譬如,很重要的一點是,FLASH、EEPROM、RAM、外設 等,都是映射到一個連續的 地址 空間。(比不連續的 51 簡單方便很多。)
STM8 想快速擦寫 EEPROM 需要在內存中運行代碼。 woshigeshuai 发表于 2020-8-12 11:11
好奇STC芯片是哪家芯片厂生产的,中芯?
中芯目前已改单到华邦了。
页:
[1]