-
- Что значит "не будет"? Оно есть. Если его нет -- у тебя программа
никогда не заработает ни на x51, ни на pic18. На обоих архитектурах
ВЫЧИСЛЯЕМЫЙ адрес функции невозможен. Только из набора жёстко
заданных. А это тот же switch-case. Преимущество switch-case -- не
нужно морочиться с OVERLAY. Но если у тебя кросс-платформенность и
switch-case не удобен, то мучайся с OVERLAY. Я в своё время
предпочёл OVERLAY и FNCALL (в PICC18), чем switch-case (ибо
архитектурно жутко неудобно) fk0(1 знак., 13.12.2020 23:24)
- Тот код, где вызывает колбэк - это неизменяемый код. Типа,
библиотека низкого уровня. Она не может и не должна знать о новых
фичах прошивки... POV_(510 знак., 14.12.2020 00:03, )
- Так или иначе, но знать она БУДЕТ. Либо непосредственно (в switch-case). Либо в скрипте линкера (OVERLAY). По-другому в принципе не сделаешь. Если у тебя коллбек устанавливается ровно один раз на старте -- можешь имя функции коллбэка передавать при компиляции макросом, например. Ну или как "зарезервированное имя внешней функции". Но суть одна -- компилятор должен непосредственно знать, что будет вызываться. Скомпилировать такой код, когда компилятор вызывает неизвестную fk0(541 знак., 14.12.2020 01:34)
- Тот код, где вызывает колбэк - это неизменяемый код. Типа,
библиотека низкого уровня. Она не может и не должна знать о новых
фичах прошивки... POV_(510 знак., 14.12.2020 00:03, )
- Что значит "не будет"? Оно есть. Если его нет -- у тебя программа
никогда не заработает ни на x51, ни на pic18. На обоих архитектурах
ВЫЧИСЛЯЕМЫЙ адрес функции невозможен. Только из набора жёстко
заданных. А это тот же switch-case. Преимущество switch-case -- не
нужно морочиться с OVERLAY. Но если у тебя кросс-платформенность и
switch-case не удобен, то мучайся с OVERLAY. Я в своё время
предпочёл OVERLAY и FNCALL (в PICC18), чем switch-case (ибо
архитектурно жутко неудобно) fk0(1 знак., 13.12.2020 23:24)