你好,
我想使用UART接口吐出NMEA数据的GNSS,并为了实现这一点,我想修改UART驱动程序。
我导入了将(以及其他函数)UART_HANDLER_FUNC中的定义(基于BLE_APP_SECURY)的文件(基于BLE_APP_SECURY),并且在尝试编译时,我会收到以下错误:
。\ out_585 \ ble_app_security_585.axf:错误:l6200e:符号UART_HANDLER_FUNC乘以定义(由DA14585_SYMBOLS.txt和UART_EA.O)。。\ out_585 \ ble_app_security_585.axf:错误:l6200e:符号UART_FINISH_TRANSFERS_FUNC乘以(由DA14585_SYMBOLS.TXT和UART_EA.O)。。\ out_585 \ ble_app_security_585.axf:错误:l6200e:symbol uart_flow_off_func乘以定义(由da14585_symbols.txt和uart_ea.o)。。\ out_585 \ ble_app_security_585.axf:错误:l6200e:符号UART_FLOW_ON_FUNC乘以定义(由DA14585_SYMBOLS.TXT和UART_EA.O)。。\ out_585 \ ble_app_security_585.axf:错误:l6200e:符号UART_INIT_FUNC乘以定义(由da14585_symbols.txt和uart_ea.o)。。\ out_585 \ ble_app_security_585.axf:错误:l6200e:符号UART_READ_FUNC乘以定义(由DA14585_SYMBOLS.txt和UART_EA.O)。。\ out_585 \ ble_app_security_585.axf:错误:l6200e:符号UART_WRITE_FUNC乘法(由DA14585_SYMBOLS.txt和UART_EA.O)。。\ out_585 \ ble_app_security_585.axf:错误:l6200e:符号UART_SET_FLOW_OFF_RETRIES_LIMIT乘法(由DA14585_SYMBOLS.TXT和UART_EA.O)。。\ out_585 \ ble_app_security_585.axf:错误:l6200e:符号UART_ENV乘法定义(由da14585_symbols.txt和uart_ea.o)。
为什么在da14585_symbols.txt中定义了这些函数?
如何以最简单的方式修改驱动程序?
此致
马丁
设备:
嗨Mapart,
这是一个错误,形成链接器,因为所有功能都由ROM代码执行。我不建议您修改UART驱动程序,但如果您想这样做,您应该覆盖来自ROM代码的函数。例如,如果您希望拥有自己的UART_FINISH_TRANSFERS_FUNC(),则应执行以下修改:
您应该按照此过程进行您使用的所有功能。
谢谢,PM_DIALOG.
你好,
感谢您的回答!
只是为了确保我理解这一点:
这样对吗?
然后我还有一个问题:
同时拥有“UART_INIT_FUNC”和“UART_INIT”,“UART_HANDLER_FUND”和“UART_HANDLER”,et.c.?
此致
马丁
嗨Mapart,
是的,你是对的!目的是覆盖ROM函数并使用您的自定义UART_INIT_FUNC等。正如我之前的帖子中提到的那样,此错误来自链接器,因为所有功能都由ROM代码执行。如果您发现任何答案有用,请将其标记为已接受。
谢谢,PM_DIALOG.