找回密码
 立即注册
查看: 788|回复: 10

【讨论】即将推出的 Ai8052U, 片内 SRAM 程序的运行方案!!!

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-9-29 10:15:22 | 显示全部楼层 |阅读模式
关于 程序在 SRAM中运行, 常用的有以下几种型式:
1. 开机将程序装载到 SRAM中, 然后跳转到 SRAM中运行, 有点像 PC的引导程序 BIOS一样.
  用途a: 利用 RAM中运行的程序, 擦除整片 ROM(FLASH), 然后更新主程序.
  用途b: 利用 RAM中运行的程序, 调整中断矢量入口, 达到快速动态管理 ISR的目的.
  用途c: 片上快速仿真, 比 ROM(FLASH)仿真, 下载程序更快, 实时仿真响应速度提速, 使用更方便.
  用途d: ......

2. 开机将外部专用程序装载到 SRAM中, 然后调用 SRAM中的程序运行, 有点像 游戏类程序一样.
  用途a: 游戏类, 利用装载到 SRAM中的专用游戏程序, 运行游戏.
  用途b: 加密/解密, 利用装载到 SRAM中的专用程序, 达到动态管理, 监控 硬件的运行.
  用途c: ......

3. 高级应用, ROM(FLASH)中的程序, 可调用 SRAM中的程序运行, 同时可任意传递参数, 返回参数.
  反之亦可, SRAM中的程序, 可调用 ROM(FLASH)中的程序运行, 并且可任意传递参数, 返回参数.
  用途: ......

1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-9-29 10:16:20 | 显示全部楼层
我设想中的 主/从程序.

为方便两者之间的调用和返回, 凡相互之间调用的程序(函数), 有参数的, 规定所有参数都以指针方式参与,

主程序中, 需开辟一块数组(长度不小于其函数最大参数占用字节即可), 放置调用的具体参数和返回参数.

......


大家看看还有什么地方需补充?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15611
发表于 2024-9-29 10:34:19 | 显示全部楼层
截图202409291034156705.jpg


截图202409291034487438.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-10-6 09:46:32 | 显示全部楼层
考虑了几天, 初步设想:

一. 总方案:
1. 在 XRAM区域中, 开辟一小块数据存储区域(一般从0地址开始), 供"从程序"(装载的专用程序)使用.
  装载的"从程序", 可从 SRAM 或仿 EEPROM(FLASH)中启动运行.

二. 参数传递
方案1:
  利用 XRAM区域 的固定位置, 依次传递参数(全局变量).
  类拟 PLC内 模块间 传递参数
方案2:
  通过结构体指针,来传递参数.
  类拟 一般库函数 的传递参数.
方案3:
  通过变量和指针,来传递参数.
  最通用常规的 C函数传递参数.

点评: 方案1 实施最简单, 方案2 实施中等, 方案3 实施最复杂.

三. 函数返回(变量或指针)
方案1:
  利用 XRAM区域 的固定位置, 来返回.
  类拟 PLC内 模块间 传递参数
方案2:
  任何函数, 只充许返回变量或指针其中之一(2选1).
  类拟 一般函数 的返回.
方案3:
  充许返回变量和指针.
  最通用常规的 C函数传递参数.

点评: 方案1 实施最简单, 方案2 实施中等, 方案3 实施最复杂.

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-10-6 09:47:37 | 显示全部楼层
四. 函数调用(从调主)
1. 从程序调用主程序中多个子函数.
  比如 "数据串行输入子函数",  "数据HMI显示输出子函数", "数值转换子函数", "参数计算子函数" ......

点评: 实施中等.

五. 函数调用(主调从)
1. 主程序仅调用"从程序" 中唯一函数.
2. 主程序调用"从程序" 中多个子函数.
3. 可依次装载多个"从程序", 并且每个"从程序" 中有多个子函数, 主程序都可随时调用.

点评: 方案1 实施最简单, 方案2 实施中等, 方案3 实施最复杂.


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-10-6 09:58:15 | 显示全部楼层
六. 深度思考, "从程序" 中, 函数调用 位于"从程序" 中的子函数(子程序).
1. 仅装载一个"从程序", 每个"从程序"中多个子函数, 每个子函数再调用各自的子函数(子程序).
2. 依次装载多个"从程序", 并且每个"从程序" 中有多个子函数, 再每个子函数调用各自的子函数(子程序).

点评: 由于 251没有 偏移量调用指令, 只支持直接调用和间接调用指令,
  因此, 方案1 实施尽管复杂些, 还容易实现,
        方案2 实施起来挺复杂的, 并且功能上有所限制.

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:343
  • 最近打卡:2025-05-01 06:56:36

0

主题

17

回帖

1452

积分

金牌会员

积分
1452
发表于 2024-10-6 17:20:02 | 显示全部楼层
Ai8052U 有 16KB edata ,考虑移植 FreeRTOS 吧。

点评

不用移植, 现有版本就能用.  详情 回复 发表于 2024-10-7 02:29
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-10-7 02:29:46 | 显示全部楼层
cy*** 发表于 2024-10-6 17:20
Ai8052U 有 16KB edata ,考虑移植 FreeRTOS 吧。

不用移植, 现有版本就能用.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:154
  • 最近打卡:2025-04-30 08:40:57
已绑定手机

15

主题

630

回帖

730

积分

高级会员

积分
730
发表于 2024-11-4 08:50:12 | 显示全部楼层
谢谢分享
STC 666 888
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:37
  • 最近打卡:2025-05-01 08:57:59

19

主题

137

回帖

485

积分

中级会员

积分
485
发表于 2024-11-4 16:08:29 | 显示全部楼层
看了芯片拓扑图,终于有了4K可以运行程序的SRAM用了,另外好像有64K*2的XRAM和16K的EDATA,资源适合大一些的项目应用了。
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 00:03 , Processed in 0.135658 second(s), 111 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表