找回密码
 立即注册
查看: 2102|回复: 8

简简单单测试用户系统区与用户程序的切换

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:393
  • 最近打卡:2025-06-17 11:06:43
已绑定手机

29

主题

306

回帖

674

积分

高级会员

积分
674
发表于 2025-3-12 22:03:12 | 显示全部楼层 |阅读模式
    简简单单测试用户系统区与用户程序的切换,为后续的IAP升级做准备。串口每收到一个字节数据进行一次切换。
  1. #include "..\comm\AI8051U.h"
  2. #include "stdio.h"
  3. #include "intrins.h"
  4. typedef         unsigned char        u8;
  5. typedef         unsigned int        u16;
  6. typedef         unsigned long        u32;
  7. #define MAIN_Fosc        22118400L   //定义主时钟(精确计算115200波特率)
  8. //==========================================================================
  9. #define Baudrate1   (65536 - MAIN_Fosc / 115200 / 4)
  10. #define UART1_BUF_LENGTH    128
  11. //==========================================================================
  12. //#define  Sys_code
  13. #define  User_code
  14. /*************  本地常量声明    **************/
  15. /*************  IO口定义    **************/
  16. /*************  本地变量声明    **************/
  17. u8  TX1_Cnt;    //发送计数
  18. u8  RX1_Cnt;    //接收计数
  19. bit B_TX1_Busy; //发送忙标志
  20. u8  RX1_Buffer[UART1_BUF_LENGTH]; //接收缓冲
  21. /*************  本地函数声明    **************/
  22. void UART1_config(u8 brt);   // 选择波特率, 2: 使用Timer2做波特率, 其它值: 使用Timer1做波特率.
  23. void PrintString1(u8 *puts);
  24. /****************  外部函数声明和外部变量声明 *****************/
  25. /******************** 主函数 **************************/
  26. void main(void)
  27. {
  28.     WTST = 0;  //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
  29.     EAXSFR(); //扩展寄存器(XFR)访问使能
  30.     CKCON = 0; //提高访问XRAM速度
  31.     P0M1 = 0x00;   P0M0 = 0x00;   //设置为准双向口
  32.     P1M1 = 0x00;   P1M0 = 0x00;   //设置为准双向口
  33.     P2M1 = 0x00;   P2M0 = 0x00;   //设置为准双向口
  34.     P3M1 = 0x00;   P3M0 = 0x00;   //设置为准双向口
  35.     P4M1 = 0x00;   P4M0 = 0x00;   //设置为准双向口
  36.     P5M1 = 0x00;   P5M0 = 0x00;   //设置为准双向口
  37.     P6M1 = 0x00;   P6M0 = 0x00;   //设置为准双向口
  38.     P7M1 = 0x00;   P7M0 = 0x00;   //设置为准双向口
  39.     UART1_config(2);    // 选择波特率, 2: 使用Timer2做波特率, 其它值: 使用Timer1做波特率.
  40.     EA = 1;             //允许全局中断
  41. #ifdef  Sys_code
  42.     PrintString1("程序运行再用户系统区!\r\n");  //UART1发送一个字符串
  43. #else               
  44.          PrintString1("程序运行在工作区!\r\n");  //UART1发送一个字符串
  45. #endif       
  46.     while (1)
  47.     {
  48.                
  49.         if((TX1_Cnt != RX1_Cnt) && (!B_TX1_Busy))   //收到数据, 发送空闲
  50.         {
  51. #ifdef  Sys_code
  52.                         IAP_CONTR = 0X20;
  53. #else                       
  54.                          IAP_CONTR = 0X28;
  55. #endif
  56.             SBUF = RX1_Buffer[TX1_Cnt];
  57.             B_TX1_Busy = 1;
  58.             if(++TX1_Cnt >= UART1_BUF_LENGTH)   TX1_Cnt = 0;
  59.         }
  60.     }
  61. }
复制代码


11.png
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:393
  • 最近打卡:2025-06-17 11:06:43
已绑定手机

29

主题

306

回帖

674

积分

高级会员

积分
674
发表于 2025-3-12 22:06:53 | 显示全部楼层
其实之前用8H8K64U已经完成了4G物联网的远程升级。使用8H8K64U需要进行中断的偏移操作,这次主要是验证下AI8051的用户系统区这个功能好不好使用。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:210
  • 最近打卡:2025-06-18 08:45:53
已绑定手机

68

主题

1930

回帖

4322

积分

荣誉版主

无情的代码机器

积分
4322
发表于 2025-3-12 22:14:09 | 显示全部楼层
大道至简
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:568
  • 最近打卡:2025-06-18 08:11:24

114

主题

2028

回帖

5823

积分

论坛元老

积分
5823
发表于 2025-3-13 08:31:48 | 显示全部楼层
看代码,好像每次都执行IAP_CONTR = 0X28;  是不是呢?请赐教
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:393
  • 最近打卡:2025-06-17 11:06:43
已绑定手机

29

主题

306

回帖

674

积分

高级会员

积分
674
发表于 2025-3-13 08:33:10 | 显示全部楼层
xxkj*** 发表于 2025-3-13 08:31
看代码,好像每次都执行IAP_CONTR = 0X28;  是不是呢?请赐教

生成了两次HEX。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:393
  • 最近打卡:2025-06-17 11:06:43
已绑定手机

29

主题

306

回帖

674

积分

高级会员

积分
674
发表于 2025-3-13 08:34:16 | 显示全部楼层
wnag*** 发表于 2025-3-13 07:24
不明白,这不是宏定义吗?怎么切换的呢?

生成了两次的HEX文件,下载的
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:568
  • 最近打卡:2025-06-18 08:11:24

114

主题

2028

回帖

5823

积分

论坛元老

积分
5823
发表于 2025-3-13 08:40:33 | 显示全部楼层
小*** 发表于 2025-3-13 08:34
生成了两次的HEX文件,下载的

这两个HEX文件分别下载到用户系统区和用户程序区?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:393
  • 最近打卡:2025-06-17 11:06:43
已绑定手机

29

主题

306

回帖

674

积分

高级会员

积分
674
发表于 2025-3-13 08:41:52 | 显示全部楼层
xxkj*** 发表于 2025-3-13 08:40
这两个HEX文件分别下载到用户系统区和用户程序区?

EN
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:568
  • 最近打卡:2025-06-18 08:11:24

114

主题

2028

回帖

5823

积分

论坛元老

积分
5823
发表于 2025-3-13 08:43:58 | 显示全部楼层
挺不错的,手头有8051,以后找个时间玩玩
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-18 13:00 , Processed in 0.139441 second(s), 99 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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