Jelajahi Sumber

update 030 to v1.5.0rc

lyon 4 tahun lalu
induk
melakukan
4e747a49ed

+ 8 - 20
bsp/stm32g030c8/Booter/main.c

@@ -102,29 +102,17 @@ int main(void) {
         /* boot from flash */
         pikaMain = newRootObj("pikaMain", New_PikaMain);
         __pikaMain = pikaMain;
+				printf("[info]: boot from flash.\r\n");
         if (code[0] == 'i') {
-            printf("[info]: compiling the python...\r\n");
-            main_codeBuff = arg_setStr(NULL, "", code);
-            // obj_run(pikaMain, arg_getStr(main_codeBuff));
-            Args* buffs = New_args(NULL);
-            Parser_multiLineToAsm(buffs, arg_getStr(main_codeBuff));
-            NVIC_SystemReset();
-            goto main_loop;
-        }
-        if (code[0] == 'B') {
-//            printf("==============[Pika ASM]==============\r\n");
-//            for (int i = 0; i < strGetSize(code); i++) {
-//                if ('\n' == code[i]) {
-//                    fputc('\r', (FILE*)!NULL);
-//                }
-//                fputc(code[i], (FILE*)!NULL);
-//            }
-//            printf("==============[Pika ASM]==============\r\n");
-            printf("[info]: asm size: %d\r\n", strGetSize(code));
-            printf("[info]: boot from Pika Asm.\r\n");
-            pikaVM_runAsm(pikaMain, code);
+            obj_run(pikaMain, code);
             goto main_loop;
         }
+//        if (code[0] == 'B') {
+//            printf("[info]: asm size: %d\r\n", strGetSize(code));
+//            printf("[info]: boot from Pika Asm.\r\n");
+//            pikaVM_runAsm(pikaMain, code);
+//            goto main_loop;
+//        }
     } else {
         /* boot from firmware */
         printf("[info]: boot from firmware.\r\n");

+ 19 - 19
bsp/stm32g030c8/Booter/pika_config.c

@@ -164,12 +164,12 @@ uint32_t flash_write_char(uint32_t bassAddr,
     return flash_addr;
 }
 
-uint8_t __platform_Asm_is_to_flash(char* pyMultiLine) {
-    if (strCountSign(pyMultiLine, '\n') > 10) {
-        return 1;
-    }
-    return 0;
-}
+//uint8_t __platform_Asm_is_to_flash(char* pyMultiLine) {
+////    if (strCountSign(pyMultiLine, '\n') > 10) {
+////        return 1;
+////    }
+//    return 0;
+//}
 
 int32_t __saveStrToFlash(char* str,
                          uint32_t flashStart,
@@ -183,20 +183,20 @@ int32_t __saveStrToFlash(char* str,
     return 0;
 }
 
-char* __platform_load_pikaAsm() {
-    return (char*)FLASH_PIKA_ASM_START_ADDR;
-}
+//char* __platform_load_pikaAsm() {
+//    return (char*)FLASH_PIKA_ASM_START_ADDR;
+//}
 
-int32_t __platform_save_pikaAsm(char* PikaAsm) {
-    if (0 == globalWriteAddress) {
-        __eriseSelecttedFlash(FLASH_PIKA_ASM_START_ADDR,
-                              FLASH_PIKA_ASM_END_ADDR);
-    }
-    return __saveStrToFlash(PikaAsm, FLASH_PIKA_ASM_START_ADDR,
-                            FLASH_PIKA_ASM_END_ADDR, &globalWriteAddress);
-}
+//int32_t __platform_save_pikaAsm(char* PikaAsm) {
+//    if (0 == globalWriteAddress) {
+//        __eriseSelecttedFlash(FLASH_PIKA_ASM_START_ADDR,
+//                              FLASH_PIKA_ASM_END_ADDR);
+//    }
+//    return __saveStrToFlash(PikaAsm, FLASH_PIKA_ASM_START_ADDR,
+//                            FLASH_PIKA_ASM_END_ADDR, &globalWriteAddress);
+//}
 
-int32_t __platform_save_pikaAsm_EOF() {
+int32_t __save_pikaAsm_EOF() {
     for (int i = 0; i < 16; i++) {
         globalWriteAddress = flash_write_char(FLASH_PIKA_ASM_START_ADDR,
                                               globalWriteAddress, '\0');
@@ -336,7 +336,7 @@ void STM32_Code_flashHandler(void) {
     /* write EOF */
     __saveStrToFlash("\n\n", FLASH_PIKA_ASM_START_ADDR,
     FLASH_PIKA_ASM_END_ADDR, &globalWriteAddress);
-    __platform_save_pikaAsm_EOF();
+    __save_pikaAsm_EOF();
     HAL_FLASH_Lock();
     
     printf("[ OK ]: Write flash ok! \r\n");

+ 58 - 53
bsp/stm32g030c8/MDK-ARM/stm32g030c8.uvprojx

@@ -17,7 +17,7 @@
         <TargetCommonOption>
           <Device>STM32G030C8Tx</Device>
           <Vendor>STMicroelectronics</Vendor>
-          <PackID>Keil.STM32G0xx_DFP.1.4.0</PackID>
+          <PackID>Keil.STM32G0xx_DFP.1.3.0</PackID>
           <PackURL>http://www.keil.com/pack/</PackURL>
           <Cpu>IRAM(0x20000000-0x20001FFF) IROM(0x8000000-0x800FFFF) CLOCK(8000000) CPUTYPE("Cortex-M0+") TZ</Cpu>
           <FlashUtilSpec></FlashUtilSpec>
@@ -706,6 +706,11 @@
               <FileType>1</FileType>
               <FilePath>..\pikascript\pikascript-api/PikaStdLib-api.c</FilePath>
             </File>
+            <File>
+              <FileName>PikaStdLib_PikaObj-api.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\pikascript\pikascript-api/PikaStdLib_PikaObj-api.c</FilePath>
+            </File>
             <File>
               <FileName>STM32G0_PWM-api.c</FileName>
               <FileType>1</FileType>
@@ -726,6 +731,16 @@
               <FileType>1</FileType>
               <FilePath>..\pikascript\pikascript-api/pikaScript.c</FilePath>
             </File>
+            <File>
+              <FileName>machine_PWM-api.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\pikascript\pikascript-api/machine_PWM-api.c</FilePath>
+            </File>
+            <File>
+              <FileName>machine_Task-api.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\pikascript\pikascript-api/machine_Task-api.c</FilePath>
+            </File>
             <File>
               <FileName>PikaStdTask_Task-api.c</FileName>
               <FileType>1</FileType>
@@ -761,6 +776,16 @@
               <FileType>1</FileType>
               <FilePath>..\pikascript\pikascript-api/PikaStdDevice_PWM-api.c</FilePath>
             </File>
+            <File>
+              <FileName>machine_GPIO-api.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\pikascript\pikascript-api/machine_GPIO-api.c</FilePath>
+            </File>
+            <File>
+              <FileName>machine-api.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\pikascript\pikascript-api/machine-api.c</FilePath>
+            </File>
             <File>
               <FileName>STM32G0_IIC-api.c</FileName>
               <FileType>1</FileType>
@@ -786,6 +811,16 @@
               <FileType>1</FileType>
               <FilePath>..\pikascript\pikascript-api/PikaStdDevice_Time-api.c</FilePath>
             </File>
+            <File>
+              <FileName>machine_KEY-api.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\pikascript\pikascript-api/machine_KEY-api.c</FilePath>
+            </File>
+            <File>
+              <FileName>machine_LCD-api.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\pikascript\pikascript-api/machine_LCD-api.c</FilePath>
+            </File>
             <File>
               <FileName>PikaPiZero-api.c</FileName>
               <FileType>1</FileType>
@@ -811,6 +846,11 @@
               <FileType>1</FileType>
               <FilePath>..\pikascript\pikascript-api/STM32G0_Time-api.c</FilePath>
             </File>
+            <File>
+              <FileName>machine_Time-api.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\pikascript\pikascript-api/machine_Time-api.c</FilePath>
+            </File>
             <File>
               <FileName>PikaStdLib_StringObj-api.c</FileName>
               <FileType>1</FileType>
@@ -821,11 +861,21 @@
               <FileType>1</FileType>
               <FilePath>..\pikascript\pikascript-api/PikaPiZero_LCD-api.c</FilePath>
             </File>
+            <File>
+              <FileName>machine_ADC-api.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\pikascript\pikascript-api/machine_ADC-api.c</FilePath>
+            </File>
             <File>
               <FileName>PikaStdData_String-api.c</FileName>
               <FileType>1</FileType>
               <FilePath>..\pikascript\pikascript-api/PikaStdData_String-api.c</FilePath>
             </File>
+            <File>
+              <FileName>machine_Point-api.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\pikascript\pikascript-api/machine_Point-api.c</FilePath>
+            </File>
             <File>
               <FileName>STM32G0_Task-api.c</FileName>
               <FileType>1</FileType>
@@ -847,69 +897,24 @@
               <FilePath>..\pikascript\pikascript-api/PikaStdDevice_ADC-api.c</FilePath>
             </File>
             <File>
-              <FileName>PikaPiZero_KEY-api.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\pikascript\pikascript-api/PikaPiZero_KEY-api.c</FilePath>
-            </File>
-            <File>
-              <FileName>STM32G0_ADC-api.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\pikascript\pikascript-api/STM32G0_ADC-api.c</FilePath>
-            </File>
-            <File>
-              <FileName>machine_ADC-api.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\pikascript\pikascript-api\machine_ADC-api.c</FilePath>
-            </File>
-            <File>
-              <FileName>machine_GPIO-api.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\pikascript\pikascript-api\machine_GPIO-api.c</FilePath>
-            </File>
-            <File>
-              <FileName>machine_KEY-api.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\pikascript\pikascript-api\machine_KEY-api.c</FilePath>
-            </File>
-            <File>
-              <FileName>machine_LCD-api.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\pikascript\pikascript-api\machine_LCD-api.c</FilePath>
-            </File>
-            <File>
-              <FileName>machine_Point-api.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\pikascript\pikascript-api\machine_Point-api.c</FilePath>
-            </File>
-            <File>
-              <FileName>machine_PWM-api.c</FileName>
+              <FileName>machine_UART-api.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\pikascript\pikascript-api\machine_PWM-api.c</FilePath>
+              <FilePath>..\pikascript\pikascript-api/machine_UART-api.c</FilePath>
             </File>
             <File>
               <FileName>machine_RGB-api.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\pikascript\pikascript-api\machine_RGB-api.c</FilePath>
-            </File>
-            <File>
-              <FileName>machine_Task-api.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\pikascript\pikascript-api\machine_Task-api.c</FilePath>
+              <FilePath>..\pikascript\pikascript-api/machine_RGB-api.c</FilePath>
             </File>
             <File>
-              <FileName>machine_Time-api.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\pikascript\pikascript-api\machine_Time-api.c</FilePath>
-            </File>
-            <File>
-              <FileName>machine_UART-api.c</FileName>
+              <FileName>PikaPiZero_KEY-api.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\pikascript\pikascript-api\machine_UART-api.c</FilePath>
+              <FilePath>..\pikascript\pikascript-api/PikaPiZero_KEY-api.c</FilePath>
             </File>
             <File>
-              <FileName>machine-api.c</FileName>
+              <FileName>STM32G0_ADC-api.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\pikascript\pikascript-api\machine-api.c</FilePath>
+              <FilePath>..\pikascript\pikascript-api/STM32G0_ADC-api.c</FilePath>
             </File>
           </Files>
         </Group>

+ 2 - 2
bsp/stm32g030c8/pikascript/requestment.txt

@@ -1,5 +1,5 @@
-pikascript-core==v1.4.0
-PikaStdLib==v1.4.0
+pikascript-core==v1.5.0rc
+PikaStdLib==v1.5.0rc
 PikaStdDevice==v1.4.3
 STM32G0==v1.1.1
 PikaPiZero==v1.1.3

+ 1 - 0
examples/GPIO/main.py

@@ -18,6 +18,7 @@ print('mem.now :')
 mem.now()
 
 while True:
+    mem.now()
     io1.low()
     time.sleep_ms(500)
     io1.high()

+ 2 - 0
examples/PWM/main.py

@@ -7,8 +7,10 @@ pwm.setPin('PA8')
 pwm.setFrequency(2000)
 pwm.setDuty(0.5)
 pwm.enable()
+mem = PikaStdLib.MemChecker()
 
 while True:
+    mem.now()
     time.sleep_ms(500)
     pwm.setDuty(0.5)
     time.sleep_ms(500)

+ 1 - 0
examples/Task/main.py

@@ -20,6 +20,7 @@ mem.max()
 
 def rgb_task():
     rgb.flow()
+    mem.now()
 
 
 def led_task():