⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.txt

📁 射频芯片nRF905例程
💻 TXT
📖 第 1 页 / 共 5 页
字号:

                  _Z7__SWI_8ii PROC ; __SWI_8(int, int)
;;;663    int __swi(8) add (int i1, int i2);
;;;664    int __SWI_8      (int i1, int i2) {
000350  0002              MOVS     r2,r0
;;;665      return (i1 + i2);
000352  1850              ADDS     r0,r2,r1
;;;666    }
000354  4770              BX       lr
                          ENDP

                  main PROC
;;;667    
;;;668    int main (void) {
000356  b570              PUSH     {r4-r6,lr}
;;;669    int i, j;
;;;670    //char *m;
;;;671    //  m = (char *)malloc(1);
;;;672    //  free(m);
;;;673      add (i, j);
000358  0029              MOVS     r1,r5
00035a  0020              MOVS     r0,r4
00035c  df08              SVC      0x8  ; formerly SWI
;;;674      os_sys_init (MainTask);//启动ARTX,此函数并不返回main()
00035e  2200              MOVS     r2,#0
000360  2100              MOVS     r1,#0
000362  483c              LDR      r0,|L1.1108|
000364  2300              MOVS     r3,#0
000366  f7ff fffe         BL       os_sys_init_user
00036a  2000              MOVS     r0,#0
00036c  bc70              POP      {r4-r6}
00036e  bc08              POP      {r3}
;;;675    }
000370  4718              BX       r3
                          ENDP

                  _ZN9SystemObj8BeepInitEv PROC ; SystemObj::BeepInit()
;;;391    void SystemObj::BeepInit(void)
;;;392    {
000372  4916              LDR      r1,|L1.972|
;;;393      IO0DIR |= (1 << BEEP);		// 设置BEEP控制口为输出	
000374  6889              LDR      r1,[r1,#8]
000376  2201              MOVS     r2,#1
000378  0552              LSLS     r2,r2,#21
00037a  4311              ORRS     r1,r1,r2
00037c  4a13              LDR      r2,|L1.972|
00037e  6091              STR      r1,[r2,#8]
;;;394      IO0SET = (1 << BEEP);			// BEEP停止蜂鸣
000380  2101              MOVS     r1,#1
000382  0549              LSLS     r1,r1,#21
000384  6051              STR      r1,[r2,#4]
;;;395    }
000386  4770              BX       lr
                          ENDP

                  _ZN9SystemObj8PortInitEv PROC ; SystemObj::PortInit()
;;;382    void SystemObj::PortInit(void)
;;;383    {
000388  2100              MOVS     r1,#0
;;;384      PINSEL0 = 0x00000000;		// 设置管脚连接GPIO
00038a  4a33              LDR      r2,|L1.1112|
00038c  6011              STR      r1,[r2,#0]
;;;385      PINSEL1 = 0x00000000;		// 设置管脚连接GPIO
00038e  6051              STR      r1,[r2,#4]
;;;386      PINSEL2 = 0x00000000;		// 设置管脚连接GPIO
000390  6151              STR      r1,[r2,#0x14]
;;;387      IO0DIR  = 0x00000000;		// 设置P0口为输入
000392  4a0e              LDR      r2,|L1.972|
000394  6091              STR      r1,[r2,#8]
;;;388      IO1DIR  = 0x00000000;		// 设置P1口为输入
000396  6191              STR      r1,[r2,#0x18]
;;;389    }
000398  4770              BX       lr
                          ENDP

                  _ZN9SystemObj10SystemInitEv PROC ; SystemObj::SystemInit()
;;;375    void SystemObj::SystemInit(void)
;;;376    {
00039a  b500              PUSH     {lr}
00039c  0003              MOVS     r3,r0
;;;377      PortInit();  
00039e  0018              MOVS     r0,r3
0003a0  f7ff fffe         BL       _ZN9SystemObj8PortInitEv
;;;378      BeepInit();
0003a4  0018              MOVS     r0,r3
0003a6  f7ff fffe         BL       _ZN9SystemObj8BeepInitEv
;;;379    }
0003aa  bc08              POP      {r3}
0003ac  4718              BX       r3
                          ENDP

                  _ZN9SystemObjC1Ev PROC ; SystemObj::SystemObj()
                  _ZN9SystemObjC2Ev                  ; Second entry point ; SystemObj::SystemObj__sub_object()
;;;368    SystemObj::SystemObj(void)
;;;369    {
0003ae  b530              PUSH     {r4,r5,lr}
0003b0  0004              MOVS     r4,r0
;;;370    volatile unsigned int start;
;;;371      for (start = 1; start < 1000000; start ++);
0003b2  2501              MOVS     r5,#1
0003b4  e000              B        |L1.952|
                  |L1.950|
0003b6  1c6d              ADDS     r5,r5,#1
                  |L1.952|
0003b8  4828              LDR      r0,|L1.1116|
0003ba  4285              CMP      r5,r0
0003bc  d3fb              BCC      |L1.950|
;;;372      SystemInit();
0003be  0020              MOVS     r0,r4
0003c0  f7ff fffe         BL       _ZN9SystemObj10SystemInitEv
0003c4  0020              MOVS     r0,r4
0003c6  bc30              POP      {r4,r5}
0003c8  bc08              POP      {r3}
;;;373    }
0003ca  4718              BX       r3
                  |L1.972|
0003cc  e0028000          DCD      0xe0028000
                  |L1.976|
0003d0  0000ffff          DCD      0x0000ffff
                  |L1.980|
0003d4  7bf00000          DCD      0x7bf00000
                  |L1.984|
0003d8  00000000          DCD      Key
                  |L1.988|
0003dc  00000000          DCD      Beep_Task
                  |L1.992|
0003e0  00000000          DCD      _ZZN6KeyObj14KeyCommandExecEhhE13KeyCommandTab ; KeyObj::KeyCommandExec(unsigned char, unsigned char)::KeyCommandTab
                  |L1.996|
0003e4  00000000          DCD      tmr1
                  |L1.1000|
0003e8  00000000          DCD      Main_Task
                  |L1.1004|
0003ec  00000000          DCD      _Z7KeyTaskv ; KeyTask()
                  |L1.1008|
0003f0  00000000          DCD      Key_Task
                  |L1.1012|
0003f4  00000000          DCD      _Z7LcdTaskv ; LcdTask()
                  |L1.1016|
0003f8  00000000          DCD      Lcd_Task
                  |L1.1020|
0003fc  00000000          DCD      _Z8BeepTaskv ; BeepTask()
                  |L1.1024|
000400  00000000          DCD      Lcd
                  |L1.1028|
000404  fdb1fdb0          DCB      "\260\375\261\375"
000408  fdb3fdb2          DCB      "\262\375\263\375"
00040c  fdb5fdb4          DCB      "\264\375\265\375"
000410  fdb7fdb6          DCB      "\266\375\267\375"
000414  00000000          DCB      "\0\0\0\0"
                  |L1.1048|
000418  fdb9fdb8          DCB      "\270\375\271\375"
00041c  fdbbfdba          DCB      "\272\375\273\375"
000420  fdbdfdbc          DCB      "\274\375\275\375"
000424  fdbffdbe          DCB      "\276\375\277\375"
000428  00000000          DCB      "\0\0\0\0"
                  |L1.1068|
00042c  fdc1fdc0          DCB      "\300\375\301\375"
000430  fdc3fdc2          DCB      "\302\375\303\375"
000434  fdc5fdc4          DCB      "\304\375\305\375"
000438  fdc7fdc6          DCB      "\306\375\307\375"
00043c  00000000          DCB      "\0\0\0\0"
                  |L1.1088|
000440  fdc9fdc8          DCB      "\310\375\311\375"
000444  fdcbfdca          DCB      "\312\375\313\375"
000448  fdcdfdcc          DCB      "\314\375\315\375"
00044c  fdcffdce          DCB      "\316\375\317\375"
000450  00000000          DCB      "\0\0\0\0"
                  |L1.1108|
000454  00000000          DCD      _Z8MainTaskv ; MainTask()
                  |L1.1112|
000458  e002c000          DCD      0xe002c000
                  |L1.1116|
00045c  000f4240          DCD      0x000f4240
                          ENDP

                  _ZN9SystemObj8BeepExecEv PROC ; SystemObj::BeepExec()
;;;401    void SystemObj::BeepExec(void)//蜂鸣器发声
;;;402    {
000460  4770              BX       lr
;;;403    }
                          ENDP

                  _ZN6LcdObj14LcdClearBufferEv PROC ; LcdObj::LcdClearBuffer()
;;;525    void LcdObj::LcdClearBuffer(void)
;;;526    {
000462  b430              PUSH     {r4,r5}
;;;527    unsigned char i, j;
;;;528      for (i = 0;i < 4;i ++) {
000464  2100              MOVS     r1,#0
000466  e011              B        |L1.1164|
;;;529        for (j = 0;j < 16; j ++) {
                  |L1.1128|
000468  2200              MOVS     r2,#0
00046a  e007              B        |L1.1148|
;;;530          LcdBuffer[i][j] = ' ';
                  |L1.1132|
00046c  2420              MOVS     r4,#0x20
00046e  010d              LSLS     r5,r1,#4
000470  1dc3              ADDS     r3,r0,#7
000472  18eb              ADDS     r3,r5,r3
000474  549c              STRB     r4,[r3,r2]
000476  1c53              ADDS     r3,r2,#1              ;529
000478  061a              LSLS     r2,r3,#24             ;529
00047a  0e12              LSRS     r2,r2,#24             ;529
                  |L1.1148|
00047c  2a10              CMP      r2,#0x10              ;529
00047e  dbf5              BLT      |L1.1132|             ;529
;;;531        }
;;;532        LcdRowWriteEnable[i] = 1;//允许此行刷新汉字显示
000480  2401              MOVS     r4,#1
000482  1cc3              ADDS     r3,r0,#3
000484  545c              STRB     r4,[r3,r1]
000486  1c4b              ADDS     r3,r1,#1              ;528
000488  0619              LSLS     r1,r3,#24             ;528
00048a  0e09              LSRS     r1,r1,#24             ;528
                  |L1.1164|
00048c  2904              CMP      r1,#4                 ;528
00048e  dbeb              BLT      |L1.1128|             ;528
;;;533      }
;;;534      LcdRow = 0;
000490  2300              MOVS     r3,#0
000492  7003              STRB     r3,[r0,#0]
;;;535      LcdCol = 0;
000494  7043              STRB     r3,[r0,#1]
;;;536    }
000496  bc30              POP      {r4,r5}
000498  4770              BX       lr
                          ENDP

                  _ZN6LcdObj11LcdPinSetupEv PROC ; LcdObj::LcdPinSetup()
;;;412    void LcdObj::LcdPinSetup(void)
;;;413    {
00049a  b510              PUSH     {r4,lr}
00049c  0004              MOVS     r4,r0
;;;414    /* 设置MOSI 和SCK 及SS 为输出,其他为输入 */
;;;415      IODIR1 |= (1 << LCDRST)
00049e  4889              LDR      r0,|L1.1732|
0004a0  6980              LDR      r0,[r0,#0x18]
0004a2  210f              MOVS     r1,#0xf
0004a4  0409              LSLS     r1,r1,#16
0004a6  4308              ORRS     r0,r0,r1
0004a8  4986              LDR      r1,|L1.1732|
0004aa  6188              STR      r0,[r1,#0x18]
;;;416             |  (1 << LCDCS)
;;;417             |  (1 << LCDSCK)
;;;418             |  (1 << LCDSID);//设置输出方式
;;;419      IOCLR1 = (1 << LCDRST) | (1 << LCDCS);
0004ac  2003              MOVS     r0,#3
0004ae  0400              LSLS     r0,r0,#16
0004b0  61c8              STR      r0,[r1,#0x1c]
;;;420      IOSET1 = (1 << LCDSCK) | (1 << LCDSID);
0004b2  0080              LSLS     r0,r0,#2
0004b4  6148              STR      r0,[r1,#0x14]
;;;421      _delay_loop_(10);
0004b6  200a              MOVS     r0,#0xa
0004b8  f7ff fffe         BL       _Z12_delay_loop_j
;;;422      IOSET1 = (1 << LCDRST);
0004bc  2001              MOVS     r0,#1
0004be  0400              LSLS     r0,r0,#16
0004c0  4980              LDR      r1,|L1.1732|
0004c2  6148              STR      r0,[r1,#0x14]
;;;423    }
0004c4  bc10              POP      {r4}
0004c6  bc08              POP      {r3}
0004c8  4718              BX       r3
                          ENDP

                  _ZN6LcdObj10LcdDelayMsEj PROC ; LcdObj::LcdDelayMs(unsigned)
;;;469    void LcdObj::LcdDelayMs(unsigned int t)
;;;470    {
0004ca  2200              MOVS     r2,#0
;;;471    unsigned int i;
;;;472      for(i = 0; i < t; i++)
0004cc  e000              B        |L1.1232|
                  |L1.1230|
0004ce  1c52              ADDS     r2,r2,#1
                  |L1.1232|
0004d0  428a              CMP      r2,r1
0004d2  d3fc              BCC      |L1.1230|
;;;473      {
;;;474    //    _delay_loop_2(250 * FREQ);
;;;475      }
;;;476    }
0004d4  4770              BX       lr
                          ENDP

                  _ZN6LcdObj7LcdInitEv PROC ; LcdObj::LcdInit()
;;;426    void LcdObj::LcdInit(void)
;;;427    {
0004d6  b510              PUSH     {r4,lr}
0004d8  0004              MOVS     r4,r0
;;;428    /*--------------------------------------------------- 
;;;429        LCD模块上电等待延时 
;;;430    ----------------------------------------------------*/ 
;;;431    #ifndef debugmode
;;;432      LcdDelayMs(1000);//上电等待延时1000Ms
0004da  217d              MOVS     r1,#0x7d
0004dc  00c9              LSLS     r1,r1,#3
0004de  0020              MOVS     r0,r4
0004e0  f7ff fffe         BL       _ZN6LcdObj10LcdDelayMsEj
;;;433    #endif
;;;434      LcdPinSetup();//SPI初始化 
0004e4  0020              MOVS     r0,r4
0004e6  f7ff fffe         BL       _ZN6LcdObj11LcdPinSetupEv
;;;435      LcdClearBuffer();
0004ea  0020              MOVS     r0,r4
0004ec  f7ff fffe         BL       _ZN6LcdObj14LcdClearBufferEv
;;;436      LcdSendCommand(0x20);//发送4位控制命令 
0004f0  2120              MOVS     r1,#0x20
0004f2  0020              MOVS     r0,r4
0004f4  f7ff fffe         BL       _ZN6LcdObj14LcdSendCommandEc
;;;437    //  LcdSendCommand(0x30);//发送8位控制命令//与8位4位无关!!! 
;;;438      LcdSendCommand(0x02);//发送位址归位命令,设定DDRAM位址计数器为0 
0004f8  2102              MOVS     r1,#2
0004fa  0020              MOVS     r0,r4
0004fc  f7ff fffe         BL       _ZN6LcdObj14LcdSendCommandEc

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -