Răsfoiți Sursa

[bsp][bl][tools] add dist function (#7278)

Liu,Yuan 2 ani în urmă
părinte
comite
df85bdeeee

+ 9 - 1
bsp/bouffalo_lab/bl808/m0/rtconfig.py

@@ -4,6 +4,7 @@ import os
 ARCH        ='risc-v'
 CPU         ='e9xx'
 CROSS_TOOL  ='gcc'
+BSP_LIBRARY_TYPE = 'bouffalo_lab'
 
 if os.getenv('RTT_ROOT'):
     RTT_ROOT = os.getenv('RTT_ROOT')
@@ -59,4 +60,11 @@ if PLATFORM == 'gcc':
 
 DUMP_ACTION = OBJDUMP + ' -D -S $TARGET > rtt.asm\n'
 POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread_m0.bin\n' + SIZE + ' $TARGET \n'
-POST_ACTION += 'sh combine.sh bl808 ./rtthread_m0.bin\n'
+POST_ACTION += 'sh combine.sh bl808 ./rtthread_m0.bin\n'
+
+def dist_handle(BSP_ROOT, dist_dir):
+    import sys
+    cwd_path = os.getcwd()
+    sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools'))
+    from sdk_dist import dist_do_building
+    dist_do_building(BSP_ROOT, dist_dir)

+ 39 - 0
bsp/bouffalo_lab/bl808/tools/sdk_dist.py

@@ -0,0 +1,39 @@
+import os
+import sys
+import shutil
+cwd_path = os.getcwd()
+sys.path.append(os.path.join(os.path.dirname(cwd_path), 'rt-thread', 'tools'))
+
+# BSP dist function
+def dist_do_building(BSP_ROOT, dist_dir):
+    from mkdist import bsp_copy_files
+    import rtconfig
+
+    library_path = os.path.join(os.path.dirname(BSP_ROOT), '../libraries')
+    print("library_path   ",library_path)
+    library_dir  = os.path.join(dist_dir, 'libraries')
+    print("library_dir   ",library_dir)
+    print("=> copy bsp drivers")
+    bsp_copy_files(os.path.join(library_path, 'rt_drivers'), os.path.join(library_dir, 'rt_drivers'))
+    print("=> copy bsp CMSIS")
+    bsp_copy_files(os.path.join(library_path, 'bl_mcu_sdk'), os.path.join(library_dir, 'bl_mcu_sdk'))
+    print("=> copy bsp library")
+
+    shutil.copyfile(os.path.join(library_path, 'Kconfig'), os.path.join(library_dir, 'Kconfig'))
+    
+    # change RTT_ROOT in Kconfig
+    if not os.path.isfile(os.path.join(dist_dir, 'Kconfig')):
+        return
+
+    with open(os.path.join(dist_dir, 'Kconfig'), 'r') as f:
+        data = f.readlines()
+    with open(os.path.join(dist_dir, 'Kconfig'), 'w') as f:
+        found = 0
+        for line in data:
+            if line.find('RTT_ROOT') != -1:
+                found = 1
+            if line.find('../../libraries') != -1 and found:
+                position = line.find('../../libraries')
+                line = line[0:position] + 'libraries"\n'
+                found = 0
+            f.write(line)