If you don't care where anything goes as long as it works, then you won't see any of that. But you probably *will* need to use the external programmer interface for any updates. (depending on what you're doing, that requirement might be a feature) Even a pre-fab bootloader needs to not be overwritten, which requires at least a little bit of linker code to not try to put stuff there, even if that bit of flash is protected otherwise. (hardware fuses, and the bootloader itself checking addresses)This is where many LPC series microncontrollers from NXP really shine; most of them have well designed serial port bootloaders so you don't need any fancy programming hardware to do field updates.
if (reported_version != current_version)
{
download_current_bootloader();
}
else if (!has_valid_application)
{
download_current_application();
}
else
{
use_with_current_firmware();
}
If you don't care where anything goes as long as it works, then you won't see any of that. But you probably *will* need to use the external programmer interface for any updates. (depending on what you're doing, that requirement might be a feature) Even a pre-fab bootloader needs to not be overwritten, which requires at least a little bit of linker code to not try to put stuff there, even if that bit of flash is protected otherwise. (hardware fuses, and the bootloader itself checking addresses)This is where many LPC series microncontrollers from NXP really shine; most of them have well designed serial port bootloaders so you don't need any fancy programming hardware to do field updates.
I think you misunderstood me, but you still make a good point. There are some good pre-fab bootloaders for PIC and AVR too. But the problem with any bootloader is that it requires some non-zero amount of code space, and the compiler/linker for the main project can't be allowed to put anything there.
If you don't care where anything goes as long as it works, then you won't see any of that. But you probably *will* need to use the external programmer interface for any updates. (depending on what you're doing, that requirement might be a feature) Even a pre-fab bootloader needs to not be overwritten, which requires at least a little bit of linker code to not try to put stuff there, even if that bit of flash is protected otherwise. (hardware fuses, and the bootloader itself checking addresses)This is where many LPC series microncontrollers from NXP really shine; most of them have well designed serial port bootloaders so you don't need any fancy programming hardware to do field updates.
I think you misunderstood me, but you still make a good point. There are some good pre-fab bootloaders for PIC and AVR too. But the problem with any bootloader is that it requires some non-zero amount of code space, and the compiler/linker for the main project can't be allowed to put anything there.No, the bootloaders in microcontrollers from NXP reside in a dedicated piece of ROM memory which (on newer devices) may also have an API to control peripherals as well. This bootloader is programmed at the factory and doesn't take any space from the regular flash. The big advantage is that you don't need JTAG or SWD to program the controller; just hook it up to a USB to serial converter and off you go.
What I can't understand is the PIC18 extended instruction set. It's meant for high level languages like C.
The old mplab C18 did support it, but HiTech's PICC never did.
Microchip bought HiTech, renamed it to XC8, and abandoned C18.
I have used mcc18 with PIC18 MCUs, and it was fine AFAIR, but never used XC8. (Have used XC16 and XC32 on other PICs since then.)
Are you sure XC8 never got updated by Microchip for better support of the PIC18? I admit I've never bothered to check.
Why did they abandon mcc18? No clue. They probably wanted to redirect resources to XC16 instead. Maintaining a compiler is always costly. Dunno.
It just struck me that the thread is titled "Why do people not like Microchip?" as opposed to "What do people think of Microchip?".
It's like we all know we don't like them, but why?
I took the title of the thread as an exaggerated clickbait title which is OK to me, I never considered someone seriously thinks Microchip is generally disliked.
Oh, and this said, all points "against" Microchip that were really considered here were about their MCUs.
Nvidia has cornered most of the asymmetric HPC domain (i.e., high-performance computing using CPU + another processor type, here graphics processors via CUDA; AIUI OpenCL is not nearly as widely used yet). Because almost all of that is done on Linux, it means sysadmins cannot really do any debugging/fixing of the issues themselves (unless they can duplicate the bug on a Linux machine with all open source components), and need to report the bug upstream to Nvidia devs, and hope they can do something about it – and the mean time, try to work around the issue. If you want to use CUDA, this is what you do; no "hate" involved.
I won't ever use Nvidia cards on my Linux dev machines, but I wouldn't mind having a powerful rack-mounted HPC unit with a couple of Nvidia cards to do CUDA.
Does that mean I hate Nvidia, or that I love Nvidia? No, it means I choose rationally.
As to Allwinner, their business model is odd. They ignore copyright laws with gay abandon, which makes no sense –– unless they know they'll never expand outside China. And they are utter shit when it comes to the software side. Comparing their operations to e.g. RockChip (which is a very similar company), especially their software efforts, means I will definitely focus on RockChip-based SBCs instead of Allwinner-based ones, for my tinkering/development devices. (The other companies that I like for Linux SBCs are Amlogic and Samsung, since I can use fully open source upstream vanilla Linux kernels for these.)
For tablets running vendor-provided software anyway, who cares? Not I; I choose my Android tablets mainly based on their display properties anyway.
Hmm. I like a Linux box with Nvidia graphics. All free software, including the closed-source driver
anything else is a barely-functional hack.
It's like the Chinese don't understand Western culture at all, but keep trying anyway in hopes that something they still don't understand will stick.
anything else is a barely-functional hack.No; for typical web-browsing and video-watching needs, built-in Intel graphics in Linux work just fine too. Yes, video playback is properly accelerated nowadays, with Nvidia/Noveau/AMD/Intel drivers in Linux...
It's like the Chinese don't understand Western culture at all, but keep trying anyway in hopes that something they still don't understand will stick.I'm not sure these companies are interested in understanding...
(Then again, sometimes the software support is deliberately time-limited, to ensure customers will shift to the next hardware version; hopefully from the same vendor. Problem is, the risk of customers choosing a different vendor is unknown, and if any vendor decides to provide much longer support for the same cost and successfully communicates this to their customers, they're likely to grab significant market share from the "augh; I have to get yet another router/AP" customers, which are an increasing portion of the entire customer base.)
What really surprises me every time I look at provided Linux-based firmware images for all sorts of appliances, is the utterly shitty quality of the systems integration (i.e., the filesystem images, the open source components used to provide the necessary services in the Linux userspace, and so on). It isn't difficult to do better, so who the hell are they hiring to do this stuff? First timers? High-school kids? I dunno.
I meant that the commercial paid platforms each have a specific use in mind, and to try and use those platforms for anything other than their intended use is a barely-functional hack. There are lots of other platforms that are far more capable as true general-purpose machines, and you've only mentioned some of them.
Yeah, everything's geared towards making a buck now. Run that through several layers of ramifications, and you're not really buying a product at all; you're buying the marketing. The product is simply a prompt for the marketeers to go nuts with, and it shows.
That's a difficult question to answer, though, because humans extrapolate, and brands are the marketing tool that targets that human behaviour precisely: "if you liked that thing, here is another thing from the same brand that you'll like too!". It is very difficult to analyze oneself and even accept that some decisions are based on emotive reasons like good marketing, instead of objective comparisons or such. Mainly, this means it is difficult to separate what one considers "good experience" and what is the result of marketing and not finding any fault yet to bring one down from the high of having a yet another tool one feels one likes. Myself very much included.
That's a difficult question to answer, though, because humans extrapolate, and brands are the marketing tool that targets that human behaviour precisely: "if you liked that thing, here is another thing from the same brand that you'll like too!". It is very difficult to analyze oneself and even accept that some decisions are based on emotive reasons like good marketing, instead of objective comparisons or such. Mainly, this means it is difficult to separate what one considers "good experience" and what is the result of marketing and not finding any fault yet to bring one down from the high of having a yet another tool one feels one likes. Myself very much included.Does marketing actually work on engineers?
Isn't marketing mostly targeted at technically inept managers that might be tricked into thinking a product suddenly cuts development time in half or cut component costs?
As to Allwinner, their business model is odd. They ignore copyright laws with gay abandon, which makes no sense –– unless they know they'll never expand outside China. And they are utter shit when it comes to the software side. Comparing their operations to e.g. RockChip (which is a very similar company), especially their software efforts, means I will definitely focus on RockChip-based SBCs instead of Allwinner-based ones, for my tinkering/development devices. (The other companies that I like for Linux SBCs are Amlogic and Samsung, since I can use fully open source upstream vanilla Linux kernels for these.)
For tablets running vendor-provided software anyway, who cares? Not I; I choose my Android tablets mainly based on their display properties anyway.
That's a difficult question to answer, though, because humans extrapolate, and brands are the marketing tool that targets that human behaviour precisely: "if you liked that thing, here is another thing from the same brand that you'll like too!". It is very difficult to analyze oneself and even accept that some decisions are based on emotive reasons like good marketing, instead of objective comparisons or such. Mainly, this means it is difficult to separate what one considers "good experience" and what is the result of marketing and not finding any fault yet to bring one down from the high of having a yet another tool one feels one likes. Myself very much included.Does marketing actually work on engineers?Marketing that is appropriately directed at engineers, yes. Things like samples, journals/articles by their engineers and hardware designers, access to higher-tier support, and so on.
My point is that even people who are thing-oriented rather than people-oriented, (specific types of) marketing still works. When it is done effectively, thing-oriented people don't even notice it; they just find that "I've somehow always had a suitable device at hand".
Note that I am including everything that is done to increase sales that does not modify/affect the product sold, as marketing; not just advertisements.
Do you really believe you are immune to everything companies do to increase sales (excluding actual modifications to their products)?
I know I am not (immune).
SWAPF CHAR1,W
ADDLW 0x55
BTFSS CHAR1,6 ; test if letter
ADDLW 0x71
; 2nd hex char
ADDWF CHAR2,W
BTFSS CHAR2,6 ; test if letter
ADDLW 0x07