您尚未登录。

#1 Re: 8051/STC8/AT89C51/N76E003 » 新唐 N76E003 8051 1T 单片机入坑记录 » 2020-04-08 15:16:22

搬运了貌似是官方放出的串口烧写的BootLoader到串口1,改成SDCC编译了,上机位要求python3。官方代码乱得一坨,保持了原汁原味,终于可以在macOS下刷程序。
isp_uart1.zip
貌似是官方放出的Nuvoton Standard ISP Code_N76E003.zip

#2 Re: 8051/STC8/AT89C51/N76E003 » 新唐 N76E003 8051 1T 单片机入坑记录 » 2020-04-06 16:49:47

晕哥 说:

如果用自己的ISP上位机软件,哪个口可以做ISP吧,i2c,spi都行。

因为串口1复用了icp的管脚,结果改了发现怎么也发不出数据,还未确定是软件问题还是硬件问题。

#3 Re: 8051/STC8/AT89C51/N76E003 » 新唐 N76E003 8051 1T 单片机入坑记录 » 2020-04-06 16:22:52

晕哥试过bootloader改成串口1么?有没任何资料说过串口1不能做isp?

#5 Re: 8051/STC8/AT89C51/N76E003 » 新唐 N76E003 8051 1T 单片机入坑记录 » 2019-01-05 14:51:17

晕哥 说:

@skcks 感谢分享! 有空试一试 sdcc, 对了, 可以使用 NU-LINK 单步调试吗?

sdcc用不了NU-LINK,坐等大神逆向开发出解决方案

#6 Re: 8051/STC8/AT89C51/N76E003 » 新唐 N76E003 8051 1T 单片机入坑记录 » 2019-01-05 14:44:50

@jimmy
_sdcc_external_startup会在启动后调用,里面可以做一些初始化的操作,其中的汇编是直接从keil n76e003 bsp的启动文件里面扣出来的,作用是关闭POR功能

#7 Re: 8051/STC8/AT89C51/N76E003 » 新唐 N76E003 8051 1T 单片机入坑记录 » 2019-01-05 13:58:33

乐趣在于折腾,sdcc编译问题已解决。
原因是sdcc编译|=运算的时候会编译出3条指令,而对于某些受写保护SFR,打开TA保护后只有4个时钟周期是可以写的。
解决方法是通过peep-file来做指令替换,测试pwm例子已正常。集成sdcc&makefile

keil c51编译结果

mov	TA, #0xAA				; TA = 0xAA
mov	TA, #0x55				; TA = 0x55 {'U'}
orl	SFRS, #0x01			; SFRS |= 0x01

未修正前SDCC编译结果

        mov	TA, #0xAA				; TA = 0xAA
	mov	TA, #0x55				; TA = 0x55 {'U'}
	mov	R6, SFRS				; R6 = SFRS
	orl	0x06, #0x01			; 0x06 |= 0x01
	mov	SFRS, R6				; SFRS = R6

#8 Re: 8051/STC8/AT89C51/N76E003 » 新唐 N76E003 8051 1T 单片机入坑记录 » 2019-01-03 16:23:35

参考了一个台湾同胞的指导文章,用sdcc来编译,结果就只有一路正常。:/
使用SDCC開發新唐N76E003 1T 8051
集成sdcc&makefile

#9 Re: 8051/STC8/AT89C51/N76E003 » 新唐 N76E003 8051 1T 单片机入坑记录 » 2019-01-03 10:07:38

用bsp包中例子PWM_Simple工程来测试,发现只有P01输出PWM,其他都没输出,晕哥有遇到这个情况么?

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn