Mercurial > ecos-v3_0-branch
comparison packages/hal/arm/lpc2xxx/var/current/cdl/hal_arm_lpc2xxx.cdl @ 2714:615dc33ccc6c
* include/lpc2xxx_iap.h, src/lpc2xxx_iap.c, tests/iap_test.c: New
files: support for IAP (In Application Programming) interface and
small test case for hal_lpc2xxx_iap_call().
* cdl/hal_arm_lpc2xxx.cdl: CYGINT_HAL_ARM_LPC2XXX_IAP_CALL interface
and CYGPKG_HAL_ARM_LPC2XXX_TESTS option added.
| author | jlarmour |
|---|---|
| date | Thu, 15 Jan 2009 03:40:47 +0000 |
| parents | db4d5a0ddeb4 |
| children | 74dbf4c3f2e1 |
comparison
equal
deleted
inserted
replaced
| 2713:360689a2c1c5 | 2714:615dc33ccc6c |
|---|---|
| 278 into one single slot and the ISR need to find out which interrupt | 278 into one single slot and the ISR need to find out which interrupt |
| 279 occured. The default value for the system clock interrupts is 0 - | 279 occured. The default value for the system clock interrupts is 0 - |
| 280 this is the highest priority IRQ." | 280 this is the highest priority IRQ." |
| 281 } | 281 } |
| 282 | 282 |
| 283 cdl_interface CYGINT_HAL_ARM_LPC2XXX_IAP_CALL { | |
| 284 display "Interface to manage IAP call" | |
| 285 } | |
| 286 | |
| 287 cdl_component CYGBLD_BUILD_HAL_LPC2XXX_WITH_IAP_CALL { | |
| 288 display "IAP (In Application Programming) interface" | |
| 289 flavor bool | |
| 290 default_value 1 | |
| 291 compile lpc2xxx_iap.c | |
| 292 implements CYGINT_HAL_ARM_LPC2XXX_IAP_CALL | |
| 293 | |
| 294 cdl_option CYGNUM_HAL_ARM_LPC2XXX_IAP_CALL_SAFE { | |
| 295 display "Disable interrupts during IAP call" | |
| 296 flavor bool | |
| 297 default_value 1 | |
| 298 description " | |
| 299 In most cases IAP calls uses itself to manage on-chip | |
| 300 flash memory. LPC2XXX on-chip flash memory is not | |
| 301 accessible during erase and write operations. The | |
| 302 user should either disable interrupts, or ensure that | |
| 303 user interrupt vectors are active in RAM and that | |
| 304 the interrupt handlers reside in RAM, before making a | |
| 305 flash erase/write IAP call. The IAP code does not use | |
| 306 or disable interrupts. This option disable interrupts | |
| 307 by default during IAP call (for safety)." | |
| 308 } | |
| 309 | |
| 310 cdl_option CYGFUN_HAL_ARM_LPC2XXX_IAP_CALL_WRAP { | |
| 311 display "Wrap for IAP call enabled" | |
| 312 flavor bool | |
| 313 active_if { CYGDAT_HAL_ARM_LPC2XXX_IAP_PRE_CALL || \ | |
| 314 CYGDAT_HAL_ARM_LPC2XXX_IAP_POST_CALL } | |
| 315 calculated 1 | |
| 316 description " | |
| 317 This option controls whether IAP call will be wrapped by | |
| 318 custom helpers. E.g., IAP flash programming call takes | |
| 319 ~ 1 ms per 512 byte line. Single sector or full chip | |
| 320 erase takes 400 mS. This can be quite enougth to fire a | |
| 321 hardware watchdog. You still can manage it using own pre- | |
| 322 and (or) post-calls." | |
| 323 } | |
| 324 | |
| 325 # void (*precall)(void) | |
| 326 cdl_option CYGDAT_HAL_ARM_LPC2XXX_IAP_PRE_CALL { | |
| 327 display "Use custom IAP pre-call" | |
| 328 flavor booldata | |
| 329 default_value 0 | |
| 330 description " | |
| 331 If enabled, this option will tell IAP call to use the | |
| 332 value of this option as a custom pre-call." | |
| 333 } | |
| 334 | |
| 335 # void (*postcall)(void) | |
| 336 cdl_option CYGDAT_HAL_ARM_LPC2XXX_IAP_POST_CALL { | |
| 337 display "Use custom IAP post-call" | |
| 338 flavor booldata | |
| 339 default_value 0 | |
| 340 description " | |
| 341 If enabled, this option will tell IAP call to use the | |
| 342 value of this option as a custom post-call." | |
| 343 } | |
| 344 } | |
| 345 | |
| 346 cdl_option CYGPKG_HAL_ARM_LPC2XXX_TESTS { | |
| 347 display "LPC2XXX HAL tests" | |
| 348 flavor data | |
| 349 no_define | |
| 350 calculated { "tests/iap_test" } | |
| 351 description " | |
| 352 This option specifies the set of tests for the LPC2XXX HAL." | |
| 353 } | |
| 354 | |
| 283 } | 355 } |
