mirror of
https://github.com/openocd-org/openocd.git
synced 2025-10-17 07:52:22 +08:00
Compare commits
12 Commits
v0.11.0-rc
...
v0.11.0
Author | SHA1 | Date | |
---|---|---|---|
![]() |
f342aac084 | ||
![]() |
5f3bc3b279 | ||
![]() |
23d8831391 | ||
![]() |
ba0f382137 | ||
![]() |
54ef790149 | ||
![]() |
84a2302af7 | ||
![]() |
f68ade529a | ||
![]() |
8a2f2993da | ||
![]() |
992508cb80 | ||
![]() |
3ead2633af | ||
![]() |
427552c078 | ||
![]() |
5c17ce508e |
15
.github/workflows/snapshot.yml
vendored
15
.github/workflows/snapshot.yml
vendored
@@ -85,19 +85,24 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
name: ${{ env.ARTIFACT_NAME }}
|
name: ${{ env.ARTIFACT_NAME }}
|
||||||
path: ${{ env.ARTIFACT_PATH }}
|
path: ${{ env.ARTIFACT_PATH }}
|
||||||
- name: Get the upload URL for a release
|
- name: Create Release
|
||||||
id: get_release
|
id: create_release
|
||||||
if: startsWith(github.ref, 'refs/tags/')
|
if: startsWith(github.ref, 'refs/tags/')
|
||||||
uses: bruceadams/get-release@v1.2.0
|
uses: actions/create-release@v1.1.4
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ github.token }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
tag_name: ${{ github.ref }}
|
||||||
|
release_name: ${{ github.ref }}
|
||||||
|
draft: false
|
||||||
|
prerelease: false
|
||||||
- name: Release OpenOCD packaged for windows
|
- name: Release OpenOCD packaged for windows
|
||||||
if: startsWith(github.ref, 'refs/tags/')
|
if: startsWith(github.ref, 'refs/tags/')
|
||||||
uses: actions/upload-release-asset@v1
|
uses: actions/upload-release-asset@v1
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
with:
|
with:
|
||||||
upload_url: ${{ steps.get_release.outputs.upload_url }}
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||||
asset_path: ${{ env.ARTIFACT_PATH }}
|
asset_path: ${{ env.ARTIFACT_PATH }}
|
||||||
asset_name: ${{ env.ARTIFACT_NAME }}
|
asset_name: ${{ env.ARTIFACT_NAME }}
|
||||||
asset_content_type: application/gzip
|
asset_content_type: application/gzip
|
||||||
|
@@ -42,7 +42,6 @@ if INTERNAL_JIMTCL
|
|||||||
AM_CPPFLAGS += -I$(top_srcdir)/jimtcl \
|
AM_CPPFLAGS += -I$(top_srcdir)/jimtcl \
|
||||||
-I$(top_builddir)/jimtcl
|
-I$(top_builddir)/jimtcl
|
||||||
endif
|
endif
|
||||||
EXTRA_DIST_NEWS != ls $(srcdir)/NEWS-*
|
|
||||||
EXTRA_DIST += \
|
EXTRA_DIST += \
|
||||||
BUGS \
|
BUGS \
|
||||||
HACKING \
|
HACKING \
|
||||||
|
2
NEWS
2
NEWS
@@ -227,7 +227,7 @@ This release also contains a number of other important functional and
|
|||||||
cosmetic bugfixes. For more details about what has changed since the
|
cosmetic bugfixes. For more details about what has changed since the
|
||||||
last release, see the git repository history:
|
last release, see the git repository history:
|
||||||
|
|
||||||
http://sourceforge.net/p/openocd/code/ci/v0.11.0-rc2/log/?path=
|
http://sourceforge.net/p/openocd/code/ci/v0.11.0/log/?path=
|
||||||
|
|
||||||
|
|
||||||
For older NEWS, see the NEWS files associated with each release
|
For older NEWS, see the NEWS files associated with each release
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
AC_PREREQ(2.64)
|
AC_PREREQ(2.64)
|
||||||
AC_INIT([openocd], [0.11.0-rc2],
|
AC_INIT([openocd], [0.11.0],
|
||||||
[OpenOCD Mailing List <openocd-devel@lists.sourceforge.net>])
|
[OpenOCD Mailing List <openocd-devel@lists.sourceforge.net>])
|
||||||
AC_CONFIG_SRCDIR([src/openocd.c])
|
AC_CONFIG_SRCDIR([src/openocd.c])
|
||||||
AC_CONFIG_AUX_DIR([.])
|
AC_CONFIG_AUX_DIR([.])
|
||||||
@@ -854,6 +854,8 @@ AS_IF([test "x$gcc_warnings" = "xyes"], [
|
|||||||
AC_SUBST([GCC_WARNINGS], [$GCC_WARNINGS])
|
AC_SUBST([GCC_WARNINGS], [$GCC_WARNINGS])
|
||||||
])
|
])
|
||||||
|
|
||||||
|
AC_SUBST(EXTRA_DIST_NEWS, ["$(echo $srcdir/NEWS-*)"])
|
||||||
|
|
||||||
AC_CONFIG_FILES([
|
AC_CONFIG_FILES([
|
||||||
Makefile
|
Makefile
|
||||||
])
|
])
|
||||||
|
@@ -89,7 +89,7 @@ mode(s) of execution, and strings that provide usage and help text.
|
|||||||
A single handler may be registered using multiple names, but any name
|
A single handler may be registered using multiple names, but any name
|
||||||
may have only one handler associated with it.
|
may have only one handler associated with it.
|
||||||
|
|
||||||
The @c register_commands() and @c register_commands() functions provide
|
The @c register_command() and @c register_commands() functions provide
|
||||||
registration, while the @c unregister_command() and
|
registration, while the @c unregister_command() and
|
||||||
@c unregister_all_commands() functions will remove existing commands.
|
@c unregister_all_commands() functions will remove existing commands.
|
||||||
These may be called at any time, allowing the command set to change in
|
These may be called at any time, allowing the command set to change in
|
||||||
|
@@ -9,7 +9,7 @@ and processes that have been developed by and for the OpenOCD community.
|
|||||||
Developers that want to contribute to OpenOCD should read the following
|
Developers that want to contribute to OpenOCD should read the following
|
||||||
sections before starting work:
|
sections before starting work:
|
||||||
|
|
||||||
- The List of @subpage thelist enumerates opportunities for improving or
|
- @subpage thelist enumerates opportunities for improving or
|
||||||
extending the OpenOCD platform. If your ideas are on The List, you might
|
extending the OpenOCD platform. If your ideas are on The List, you might
|
||||||
check the mailing list archives to find the status of your feature (or bug).
|
check the mailing list archives to find the status of your feature (or bug).
|
||||||
- The @subpage styleguide provides rules that developers should
|
- The @subpage styleguide provides rules that developers should
|
||||||
|
@@ -834,7 +834,7 @@ using Eclipse or some other GUI.
|
|||||||
Today's most common case is a dongle with a JTAG cable on one side
|
Today's most common case is a dongle with a JTAG cable on one side
|
||||||
(such as a ribbon cable with a 10-pin or 20-pin IDC connector)
|
(such as a ribbon cable with a 10-pin or 20-pin IDC connector)
|
||||||
and a USB cable on the other.
|
and a USB cable on the other.
|
||||||
Instead of USB, some cables use Ethernet;
|
Instead of USB, some dongles use Ethernet;
|
||||||
older ones may use a PC parallel port, or even a serial port.
|
older ones may use a PC parallel port, or even a serial port.
|
||||||
|
|
||||||
@enumerate
|
@enumerate
|
||||||
@@ -5035,6 +5035,19 @@ when reset disables PLLs needed to use a fast clock.
|
|||||||
@* After target hardware trace configuration was changed
|
@* After target hardware trace configuration was changed
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
|
@quotation Note
|
||||||
|
OpenOCD events are not supposed to be preempt by another event, but this
|
||||||
|
is not enforced in current code. Only the target event @b{resumed} is
|
||||||
|
executed with polling disabled; this avoids polling to trigger the event
|
||||||
|
@b{halted}, reversing the logical order of execution of their handlers.
|
||||||
|
Future versions of OpenOCD will prevent the event preemption and will
|
||||||
|
disable the schedule of polling during the event execution. Do not rely
|
||||||
|
on polling in any event handler; this means, don't expect the status of
|
||||||
|
a core to change during the execution of the handler. The event handler
|
||||||
|
will have to enable polling or use @command{$target_name arp_poll} to
|
||||||
|
check if the core has changed status.
|
||||||
|
@end quotation
|
||||||
|
|
||||||
@node Flash Commands
|
@node Flash Commands
|
||||||
@chapter Flash Commands
|
@chapter Flash Commands
|
||||||
|
|
||||||
|
@@ -50,7 +50,7 @@ bool jtag_usb_location_equal(uint8_t dev_bus, uint8_t *port_path,
|
|||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
string_length -= 1;
|
string_length -= strnlen(ptr, string_length);
|
||||||
/* check bus mismatch */
|
/* check bus mismatch */
|
||||||
if (atoi(ptr) != dev_bus)
|
if (atoi(ptr) != dev_bus)
|
||||||
goto done;
|
goto done;
|
||||||
@@ -68,7 +68,7 @@ bool jtag_usb_location_equal(uint8_t dev_bus, uint8_t *port_path,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
path_step++;
|
path_step++;
|
||||||
string_length -= 2;
|
string_length -= strnlen(ptr, string_length) + 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* walked the full path, all elements match */
|
/* walked the full path, all elements match */
|
||||||
|
@@ -637,7 +637,18 @@ int target_resume(struct target *target, int current, target_addr_t address,
|
|||||||
* we poll. The CPU can even halt at the current PC as a result of
|
* we poll. The CPU can even halt at the current PC as a result of
|
||||||
* a software breakpoint being inserted by (a bug?) the application.
|
* a software breakpoint being inserted by (a bug?) the application.
|
||||||
*/
|
*/
|
||||||
|
/*
|
||||||
|
* resume() triggers the event 'resumed'. The execution of TCL commands
|
||||||
|
* in the event handler causes the polling of targets. If the target has
|
||||||
|
* already halted for a breakpoint, polling will run the 'halted' event
|
||||||
|
* handler before the pending 'resumed' handler.
|
||||||
|
* Disable polling during resume() to guarantee the execution of handlers
|
||||||
|
* in the correct order.
|
||||||
|
*/
|
||||||
|
bool save_poll = jtag_poll_get_enabled();
|
||||||
|
jtag_poll_set_enabled(false);
|
||||||
retval = target->type->resume(target, current, address, handle_breakpoints, debug_execution);
|
retval = target->type->resume(target, current, address, handle_breakpoints, debug_execution);
|
||||||
|
jtag_poll_set_enabled(save_poll);
|
||||||
if (retval != ERROR_OK)
|
if (retval != ERROR_OK)
|
||||||
return retval;
|
return retval;
|
||||||
|
|
||||||
@@ -4056,7 +4067,7 @@ COMMAND_HANDLER(handle_wp_command)
|
|||||||
}
|
}
|
||||||
|
|
||||||
enum watchpoint_rw type = WPT_ACCESS;
|
enum watchpoint_rw type = WPT_ACCESS;
|
||||||
uint32_t addr = 0;
|
target_addr_t addr = 0;
|
||||||
uint32_t length = 0;
|
uint32_t length = 0;
|
||||||
uint32_t data_value = 0x0;
|
uint32_t data_value = 0x0;
|
||||||
uint32_t data_mask = 0xffffffff;
|
uint32_t data_mask = 0xffffffff;
|
||||||
@@ -4086,7 +4097,7 @@ COMMAND_HANDLER(handle_wp_command)
|
|||||||
/* fall through */
|
/* fall through */
|
||||||
case 2:
|
case 2:
|
||||||
COMMAND_PARSE_NUMBER(u32, CMD_ARGV[1], length);
|
COMMAND_PARSE_NUMBER(u32, CMD_ARGV[1], length);
|
||||||
COMMAND_PARSE_NUMBER(u32, CMD_ARGV[0], addr);
|
COMMAND_PARSE_ADDRESS(CMD_ARGV[0], addr);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -4106,8 +4117,8 @@ COMMAND_HANDLER(handle_rwp_command)
|
|||||||
if (CMD_ARGC != 1)
|
if (CMD_ARGC != 1)
|
||||||
return ERROR_COMMAND_SYNTAX_ERROR;
|
return ERROR_COMMAND_SYNTAX_ERROR;
|
||||||
|
|
||||||
uint32_t addr;
|
target_addr_t addr;
|
||||||
COMMAND_PARSE_NUMBER(u32, CMD_ARGV[0], addr);
|
COMMAND_PARSE_ADDRESS(CMD_ARGV[0], addr);
|
||||||
|
|
||||||
struct target *target = get_current_target(CMD_CTX);
|
struct target *target = get_current_target(CMD_CTX);
|
||||||
watchpoint_remove(target, addr);
|
watchpoint_remove(target, addr);
|
||||||
|
0
tcl/interface/ftdi/steppenprobe.cfg
Executable file → Normal file
0
tcl/interface/ftdi/steppenprobe.cfg
Executable file → Normal file
@@ -26,7 +26,7 @@ if { [info exists CPUTAPID] } {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
swj_newdap $_CHIPNAME cpu -irlen 4 -irmask 0xf -expected-id _CPUTAPID
|
swj_newdap $_CHIPNAME cpu -irlen 4 -irmask 0xf -expected-id $_CPUTAPID
|
||||||
dap create $_CHIPNAME.dap -chain-position $_CHIPNAME.cpu
|
dap create $_CHIPNAME.dap -chain-position $_CHIPNAME.cpu
|
||||||
|
|
||||||
set _TARGETNAME $_CHIPNAME.cpu
|
set _TARGETNAME $_CHIPNAME.cpu
|
||||||
|
Reference in New Issue
Block a user