Change symbol extraction to use objdump not nm
nm outputs warnings to stderr so hard to clean output. Also now picks up global variables, like NMIIrqOn.
This commit is contained in:
parent
9e3328abe8
commit
81afe58334
3 changed files with 10 additions and 7 deletions
|
@ -139,7 +139,7 @@ void PendSV(enum SVC_ReqType);
|
|||
ESPTODO: It may be possible to just read the 'ps' register instead
|
||||
of accessing thisvariable.
|
||||
*/
|
||||
extern char NMIIrqIsOn;
|
||||
extern char sdk_NMIIrqIsOn;
|
||||
extern char level1_int_disabled;
|
||||
extern unsigned cpu_sr;
|
||||
|
||||
|
@ -150,7 +150,7 @@ extern unsigned cpu_sr;
|
|||
*/
|
||||
inline static __attribute__((always_inline)) void _esp_disable_interrupts(void)
|
||||
{
|
||||
if(!NMIIrqIsOn && !level1_int_disabled) {
|
||||
if(!sdk_NMIIrqIsOn && !level1_int_disabled) {
|
||||
__asm__ volatile ("rsil %0, " XTSTR(XCHAL_EXCM_LEVEL) : "=a" (cpu_sr) :: "memory");
|
||||
level1_int_disabled = 1;
|
||||
}
|
||||
|
@ -158,7 +158,7 @@ inline static __attribute__((always_inline)) void _esp_disable_interrupts(void)
|
|||
|
||||
inline static __attribute__((always_inline)) void _esp_enable_interrupts(void)
|
||||
{
|
||||
if(!NMIIrqIsOn && level1_int_disabled) {
|
||||
if(!sdk_NMIIrqIsOn && level1_int_disabled) {
|
||||
level1_int_disabled = 0;
|
||||
__asm__ volatile ("wsr %0, ps" :: "a" (cpu_sr) : "memory");
|
||||
}
|
||||
|
|
|
@ -47,6 +47,7 @@ NM = $(CROSS)nm
|
|||
CPP = $(CROSS)g++
|
||||
SIZE = $(CROSS)size
|
||||
OBJCOPY = $(CROSS)objcopy
|
||||
OBJDUMP = $(CROSS)objdump
|
||||
|
||||
# Source components to compile and link. Each of these are subdirectories
|
||||
# of the root, with a 'component.mk' file.
|
||||
|
@ -184,10 +185,12 @@ $(BUILD_DIR)sdklib/%.a: $(ROOT)lib/%.a $(BUILD_DIR)sdklib/allsymbols.rename
|
|||
$(BUILD_DIR)sdklib/norename.match: $(ROOT)lib/symbols_norename.txt | $(BUILD_DIR)sdklib
|
||||
grep -v "^#" $< | sed ':begin;$!N;s/\n/\\|/;tbegin' > $@
|
||||
|
||||
# Generate list of symbols to rename from a single library. Uses grep & sed.
|
||||
# Generate list of defined symbols to rename from a single library. Uses grep & sed.
|
||||
$(BUILD_DIR)sdklib/%.rename: $(ROOT)lib/%.a $(BUILD_DIR)sdklib/norename.match
|
||||
$(vecho) "Building symbol list for $< -> $@"
|
||||
$(Q) $(NM) --defined $< | grep ' T ' | sed -r 's/(.+) T (.+)/\2 sdk_\2/' | grep -v `cat $(BUILD_DIR)sdklib/norename.match` > $@
|
||||
$(Q) $(OBJDUMP) -t $< | grep ' g ' \
|
||||
| sed -r 's/^.+ ([^ ]+)$$/\1 sdk_\1/' \
|
||||
| grep -v `cat $(BUILD_DIR)sdklib/norename.match` > $@
|
||||
|
||||
# Build master list of all SDK-defined symbols to rename
|
||||
$(BUILD_DIR)sdklib/allsymbols.rename: $(patsubst %.a,%.rename,$(SDK_PROCESSED_LIBS))
|
||||
|
|
|
@ -36,8 +36,8 @@ static xQueueHandle mainqueue;
|
|||
|
||||
void user_init(void)
|
||||
{
|
||||
uart_div_modify(0, UART_CLK_FREQ / 115200);
|
||||
printf("SDK version:%s\n", system_get_sdk_version());
|
||||
sdk_uart_div_modify(0, UART_CLK_FREQ / 115200);
|
||||
printf("SDK version:%s\n", sdk_system_get_sdk_version());
|
||||
mainqueue = xQueueCreate(10, sizeof(uint32_t));
|
||||
xTaskCreate(task1, (signed char *)"tsk1", 256, &mainqueue, 2, NULL);
|
||||
xTaskCreate(task2, (signed char *)"tsk2", 256, &mainqueue, 2, NULL);
|
||||
|
|
Loading…
Reference in a new issue