| 55 | } |
| 56 | |
| 57 | fun writeScript() { |
| 58 | var excl = listOf( "_ZN12NavEKF2_core15readRangeFinderEv", |
| 59 | "_ZN12NavEKF2_core18SelectRngBcnFusionEv","_ZN12NavEKF2_core14readRngBcnDataEv") |
| 60 | |
| 61 | var lst = ArrayList(addressToFunction.values.filter { it.count > 5000 && !excl.contains(it.symbol) }) |
| 62 | lst.sortWith(kotlin.Comparator { o1, o2 -> o2.count - o1.count }) |
| 63 | |
| 64 | var s = 0 |
| 65 | for (a in lst) { |
| 66 | System.out.format( |
| 67 | "0x%016x\t%8d\t%8d\t%s:%s\n", |
| 68 | a.address, |
| 69 | a.size, |
| 70 | a.count, |
| 71 | a.place, |
| 72 | a.symbol |
| 73 | ) |
| 74 | s += a.size |
| 75 | } |
| 76 | FileOutputStream(scriptFileName).use { |
| 77 | for (a in lst) { |
| 78 | it.write(String.format("%s:%s\n", a.place, a.symbol).toByteArray()) |
| 79 | } |
| 80 | } |
| 81 | System.out.format("total: %d\n", s) |
| 82 | } |
| 83 | parseMap() |
| 84 | parseProfile() |
| 85 | writeScript() |