共2条
1/1 1 跳转至页
51,64K 51单片机的代码区扩展大于64K该怎么进行?
问
51单片机的总线是16位的,就算外扩rom也只能再加64K,如果超过了64K该怎么办呢?
还有啊,以前做外扩ROM的时候都是把代码全部放在外扩里,单片机里面的就空着,这一部分ROM怎么样才能利用起来呢?单片机好像直接支持从内部ROM跳转到外扩ROM的吧?
答 1: 建议去看看Keil帮助中的BANK那一节使用片内ROM时把EA脚接高电平,51芯片对于超出内部容量的地址会自动访问外部ROM的 答 2: 看看例子,keil目录下有!! 答 3: 不用那么麻烦,winbond有现成的W79E532,W78C438C 答 4: 你的程序有那么长么?你的程序有那么长么? 答 5: 这个只是一个假设啊,而且可能性很大的啊这个只是一个假设啊,而且可能性很大的啊
比如代码里包含大量的字库信息的时候代码就会变得其大无比
xwj,EA接高我还是知道的,可是出现内外代码区切换的时候,代码地址是怎么自动完成的呢,难道是8K的结尾直接到外扩的0地址?那么直接跳转指令是怎么执行的?而且地址好像出现重复了啊.....
gwnpeter,例子里面哪一个是相关的啊,能不能说一下啊?
wincpu ,不要这样一位的推销你的芯片嘛.... 答 6: 是向你介绍最简单的解决方案,不是推销芯片winbond代理商,分销商到处都是,你也不一定会和我做生意 答 7: 哦这两个是单片机的型号吧?
似乎还是没有解决代码分段的问题啊 答 8: 单片机的程序做到64K就应该淘汰了!目前的单片机发展趋向于SOC,而且不主张使用总线设备,多用串行设备替代。
在PIC和mot单片机很明显。
如果程序规模大于8K,就应该用其他系列替代51了! 答 9: ...我现在想要讨论的是关于大型代码分段的问题
而不是使用串行设备,更换单片机甚至是趋向SOC的问题....
仅仅只是一个单纯的技术问题,何必搞得怎么复杂? 答 10: 如果是字库如果是字库,那可以用一个任意大的存储器,然后用IO口来访问,不涉及程序超过64K的问题。程序没有超过64K。那些是数据。 答 11: 恩那个只是一个比方...
不知道以后会不会遇到这种情况..... 答 12: 不是“8K的结尾直接到外扩的0地址?”而是8K开始对应到外部ROM 的8k
8K以下的对应到内部FLASH,外部ROM的低8K没用到,浪费了
对于字库可以映射到RAM区作数据或直接在外部ROM分页(还是作为数据用指针寻址,IO口输出页选,程序运行与片类ROM) 答 13: 谢谢xwj~~~具体在keil怎么设置呢??
该不会是利用其他工具软件强行进行分割吧?
如果外部rom对应片内flash的空间都浪费了的话,如果单片机本身就有64K的话,这样的浪费似乎也太大了一点呢 答 14: 会啊,我现在做的显示程序就已经64k了,也在看如何解决比较好会啊,我现在做的显示程序就已经64k了,也在看如何解决比较好。
好像keil里面是由这个功能的,用BL51连接,正在学习中。
还有啊,以前做外扩ROM的时候都是把代码全部放在外扩里,单片机里面的就空着,这一部分ROM怎么样才能利用起来呢?单片机好像直接支持从内部ROM跳转到外扩ROM的吧?
答 1: 建议去看看Keil帮助中的BANK那一节使用片内ROM时把EA脚接高电平,51芯片对于超出内部容量的地址会自动访问外部ROM的 答 2: 看看例子,keil目录下有!! 答 3: 不用那么麻烦,winbond有现成的W79E532,W78C438C 答 4: 你的程序有那么长么?你的程序有那么长么? 答 5: 这个只是一个假设啊,而且可能性很大的啊这个只是一个假设啊,而且可能性很大的啊
比如代码里包含大量的字库信息的时候代码就会变得其大无比
xwj,EA接高我还是知道的,可是出现内外代码区切换的时候,代码地址是怎么自动完成的呢,难道是8K的结尾直接到外扩的0地址?那么直接跳转指令是怎么执行的?而且地址好像出现重复了啊.....
gwnpeter,例子里面哪一个是相关的啊,能不能说一下啊?
wincpu ,不要这样一位的推销你的芯片嘛.... 答 6: 是向你介绍最简单的解决方案,不是推销芯片winbond代理商,分销商到处都是,你也不一定会和我做生意 答 7: 哦这两个是单片机的型号吧?
似乎还是没有解决代码分段的问题啊 答 8: 单片机的程序做到64K就应该淘汰了!目前的单片机发展趋向于SOC,而且不主张使用总线设备,多用串行设备替代。
在PIC和mot单片机很明显。
如果程序规模大于8K,就应该用其他系列替代51了! 答 9: ...我现在想要讨论的是关于大型代码分段的问题
而不是使用串行设备,更换单片机甚至是趋向SOC的问题....
仅仅只是一个单纯的技术问题,何必搞得怎么复杂? 答 10: 如果是字库如果是字库,那可以用一个任意大的存储器,然后用IO口来访问,不涉及程序超过64K的问题。程序没有超过64K。那些是数据。 答 11: 恩那个只是一个比方...
不知道以后会不会遇到这种情况..... 答 12: 不是“8K的结尾直接到外扩的0地址?”而是8K开始对应到外部ROM 的8k
8K以下的对应到内部FLASH,外部ROM的低8K没用到,浪费了
对于字库可以映射到RAM区作数据或直接在外部ROM分页(还是作为数据用指针寻址,IO口输出页选,程序运行与片类ROM) 答 13: 谢谢xwj~~~具体在keil怎么设置呢??
该不会是利用其他工具软件强行进行分割吧?
如果外部rom对应片内flash的空间都浪费了的话,如果单片机本身就有64K的话,这样的浪费似乎也太大了一点呢 答 14: 会啊,我现在做的显示程序就已经64k了,也在看如何解决比较好会啊,我现在做的显示程序就已经64k了,也在看如何解决比较好。
好像keil里面是由这个功能的,用BL51连接,正在学习中。
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 | |
【FRDM-MCXN947评测】核间通信MUTEX被打赏50分 |